真吊,这个问题搞好好一会。mark一下。
首先 shape_dashed.xml代码:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke
android:dashGap="3dp"
android:dashWidth="3dp"
android:width="1dp"
android:color="@color/gray_d3d3d3" />
<size android:height="1dp"/>
<!-- 虚线的高度 -->
</shape>
很简单,不多解释了,
使用代码:
<View
android:layerType="software"
android:layout_width="match_parent"
android:layout_height="40px"
android:background="@drawable/shape_dashed" />
解释一下:
以前用shape做虚线框时,直接设置背景就可以了。
但是,需要显示一条虚线(不是虚线框)时,却tm显示一条实线。
搞不懂。我们要做的就是关闭硬件加速
解决方法:
1.布局文件的view中添加 android:layerType=”software”
2. AndroidManifest.xml,或者是在activity中把硬件加速的功能关掉就可以了android:hardwareAccelerated=”false”
3. 代码设置,view.setLayerType(View.LAYER_TYPE_SOFTWARE, null)。
mark!mark!mark!