Android中虚线未显示

4

请注意,我在此处参考了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解决方案。
1个回答

4
尝试将software设置为ImageView中的layerType
<ImageView
    android:layerType="software"
    ...
/>

1
是的,我已经尝试过在XML和编程中都进行了尝试,但没有任何结果。 - New Guy
好的,将此设置保留在xml中,尝试将您的shape包装到例如selector中,并告诉我们是否有效。 - questioner
我尝试将形状包装到选择器中,但这也不起作用(保持图层类型为软件)。 - New Guy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接