Android-使用png文件代替图层列表中的形状
我想使用一个特定的png文件作为我的形状,而不是像椭圆形,矩形,直线等预定义的文件。这是可能的。。以下是我的图层列表xml文件:Android-使用png文件代替图层列表中的形状,android,xml,view,android-ui,Android,Xml,View,Android Ui,我想使用一个特定的png文件作为我的形状,而不是像椭圆形,矩形,直线等预定义的文件。这是可能的。。以下是我的图层列表xml文件: <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:bottom="-2dp" android:r
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:bottom="-2dp"
android:right="-1dp"
android:top="-2dp">
<shape android:shape="oval"
>
<solid android:color="@android:color/transparent" />
<stroke
android:dashGap="2dp"
android:dashWidth="1dp"
android:width="1dp"
android:color="@color/alert_inner_color" />
<size
android:height="33dp" android:width="2dp"
/>
</shape>
</item>
</layer-list>
看看它是如何迫使我使用椭圆的。我有我自己的png,我想用它来创建一个分隔符。我的最终目标是创建一个可用于操作视图的分隔器。我的png文件是一个单点。检查这张图片,最后一列是我想要结束的,但高度只有35dp:根据您的描述和您对@pskink的评论,您想要使用的是一个9-patch。有关XML详细信息,请参见此文档。这是大多数框架UI层/状态列表可绘制项等使用的
更新编辑:根据评论讨论,上述9-补丁信息将不起作用。实际上没有一种机制可以用来反复重复相同的“点”图像,所以你必须创建一个。您可以创建自己的
RepeatingPicturedRavable
类,该类扩展PicturedRavable
(或事件Drawable
)并重写draw()
方法来绘制重复点图像。我建议添加自定义属性来指定图像是垂直还是水平重复。使用这种机制,你可以让你的应用程序只包含一个“点”图像,并在运行时进行适当缩放。因此,不要使用形状标记,而是使用位图标记,这是你想要的吗?关闭我尝试了你的方法,但我不太清楚。我的最终目标是,我有一个很小的png文件,其中包含一个很小的点。我想做一个35dp高的垂直分离器,重复这些点。所以点从北开始,向南重复,高度为35dp。你能告诉我使用9补丁的代码是什么样子吗?你需要修改后的XML(参见我提供的链接)以及更新后的9补丁格式的PNG文件。有关格式的详细信息,请参阅和。我认为这不是我需要的。最终结果应该是这样的。我感谢任何进一步的反馈。我只是想找一个单点(比如说它是一个9块)并让它垂直重复以形成一个分割线。9块可以很好地实现这一点,这是推荐的方法。您的9面片文件将是9x9像素,中心像素是您希望的“点”颜色,黑点位于(0,1)和(1,0)x和y坐标。将其设置为视图的背景资源。将宽度设置为1dp,将高度设置为“match_parent”或任何您想要的尺寸,系统将自动垂直“拉伸”1点PNG图像。有趣的是,问题是我不需要拉伸点,我希望垂直重复点。所以分割线会像这样点着“……但是垂直的。这能做到吗?我想象它只是将一个点延伸到容器上。