请注意,我在此处参考了SO上关于创建虚线的问题以及通过Google进行的各种搜索......无论如何,问题就是这样。 我无法通过xml绘制虚线(可以使用DashPathEffect但不想一直这样做)。 这是我使用的虚线可绘制对象(dash_line.xml):
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke
android:color="@color/whiteColor"
android:dashWidth="10dp"
android:width="10dp"
android:dashGap="4dp"/>
</shape>
现在,我们来看一下ImageView在XML中的实现:
<ImageView
android:id="@+id/dash_test"
android:layout_width="200dp"
android:layout_height="10dp"
android:background="@drawable/dash_line"/>
我正在使用Android API 18。我已经在清单文件中禁用了硬件加速,甚至通过设置图层类型(尝试过xml和编程方式)在视图本身上也禁用了硬件加速。我通过获取视图并调用dashView.isHardwareAccelerated()验证了它为false。有什么想法我可能遗漏了什么吗?
编辑: 顺便说一句,我可以画实线,所以我知道这不是图层问题。
编辑: 一个解决方法是使用PathDashEffect。虽然这样做会遇到无法在图像上绘制的问题(我需要这样做)。所以...仍然希望有一个xml解决方案。
shape
包装到例如selector
中,并告诉我们是否有效。 - questioner