鉴于我有一个背景可绘制为TextViews创建这样的项目:
然后我的XML代码如下所示:
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:right="235dp">
<shape android:shape="oval">
<padding android:left="10dp" />
<size android:height="5dp" android:width="5dp"/>
<solid android:color="@color/my_pink"/>
</shape>
</item>
<item android:left="10dp">
<shape android:shape="rectangle">
<solid android:color="#ffffff"/>
<padding android:left="10dp" />
</shape>
</item>
</layer-list>
但是一旦我使用上面显示的代码,我的子弹点看起来像这样:
似乎<size>
标签完全被忽略。
你会如何解决这个问题?使用9patch,是的,我知道..也许这是最容易做到的......但实际上我希望找到一个XML解决方案,因为它在未来会更灵活。
自定义绘图也是不可能的。
答案 0 :(得分:6)
<size>
标记肯定适用于layer-list
并显示textview的项目符号,您可以使用xml属性android:drawableLeft
- &GT; link
使用这种方法,不需要9补丁和自定义绘图。
发布代码&amp;这里有截图供参考。
<强> RES /抽拉/ bullet_point_layer.xml 强>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:right="3dp">
<shape android:shape="oval">
<padding android:left="10dp" />
<size android:height="10dp" android:width="10dp"/>
<solid android:color="#ff0080"/>
</shape>
</item>
<强> RES /布局/ main.xml中强>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView one"
android:textColor="@android:color/black"
android:drawableLeft="@drawable/bullet_point_layer"
android:background="@android:color/white" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView Two"
android:textColor="@android:color/black"
android:drawableLeft="@drawable/bullet_point_layer"
android:background="@android:color/white" />
</LinearLayout>
外观如何
答案 1 :(得分:5)
这是一篇很老的帖子,但我想我会在这篇文章中添加一些非常重要的内容。
根据我的经验,<layer-list>
的最后一项将是取大小值的项目。
所以在这个例子中我创建了一个两行分隔线。我在末尾指定一个空项目来指定分隔符可绘制高度。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle">
<solid android:color="#535353" />
</shape>
</item>
<item android:top="@dimen/common_divider_line_half_size">
<shape android:shape="rectangle">
<solid android:color="#737373" />
</shape>
</item>
<!-- Last item empty to specify divider height -->
<item>
<shape android:shape="rectangle">
<size android:height="@dimen/common_divider_line_size"/>
<solid android:color="@android:color/transparent" />
</shape>
</item>
</layer-list>