<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<!-- 显示一条虚线,破折线的宽度为dashWith,破折线之间的空隙的宽度为dashGap,当dashGap=0dp时,为实线 -->
<stroke android:width="1dp" android:color="#D5D5D5"
android:dashWidth="2dp" android:dashGap="3dp" />
<!-- 虚线的高度 -->
<size android:height="2dp" />
</shape>
网上普遍的教程,实际使用后发现并没有效果(米3,v4.4.4)
不管如何设置都是一条直线
查阅各种资料,逛了各种论坛后总结出原因:
从android3.0开始,安卓关闭了硬件加速功能,所以就不能显示了,所以就是在 AndroidManifest.xml,或者是在activity中把硬件加速的功能关掉就可以了android:hardwareAccelerated="false"或者是view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
但是关闭硬件加速太坑了,影响体验,代码设置又太麻烦,于是改为xml设置
<View
android:layerType="none"
android:layout_width="match_parent"
android:layout_height="3dp"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:background="@drawable/left_menu_dash_line" />
结果还是无效,仔细检查了下,原来不能设置为none,也不能设置为hard,要改为软加速
<View
android:layerType="software"
android:layout_width="match_parent"
android:layout_height="3dp"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:background="@drawable/left_menu_dash_line" />
大功告成,特此纪录,免走弯路