鉴于我有一个背景可绘制为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>
Run Code Online (Sandbox Code Playgroud)
但是一旦我使用上面显示的代码,我的子弹点看起来像这样:

似乎<size>标签被完全忽略了.
你会如何解决这个问题?使用9patch,是的,我知道..也许这是最容易做到的......但实际上我希望找到一个XML解决方案,因为它在未来更灵活.
自定义绘图也是不可能的.
<size>标签肯定适用于layer-list
并显示textview的要点,您可以使用xml属性android:drawableLeft
- > 链接
使用这种方法,不需要9补丁和自定义绘图.
在此处发布代码和屏幕截图以供参考.
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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
看起来如何

这是一个老帖子,但我想我会添加一些非常重要的东西,这篇文章中缺少.
根据我的经验,最后一项<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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17845 次 |
| 最近记录: |