一直以为android的shape能画直线。虚线。矩形,圆形等。画直线也就算了。用一个view设一下高度和颜色,就能够出来一条直线了。所以说这个对我来说常常不用,圆形是能够,看看我应用里的消息提示框都是这样生成的。好了,这个不存在问题。今天想要做是一条虚线,什么也不说了,直接上虚线的代码:
<? 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>
解释的好完美,真要不是不自己试,预计一辈子都会相信这是真的了,结果是放到手机里,从来没有出现过什么线条,对于像我一样追求完美的人来说,自然不会放过这一个细节,在网上找了大半天,有的小伙伴们也遇到了,而且也攻克了,但是把他们的方法拿过来后。都一个也不好使,实际情况是还是不能显示,总结一下小伙伴们的解决方法吧
1.从android3.0開始,安卓关闭了硬件加速功能。所以就不能显示了,所以就是在 AndroidManifest.xml。或者是在activity中把硬件加速的功能关掉就能够了android:hardwareAccelerated="false"或者是view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
2.一个小伙伴的翻译。说什么height要大于dashWidth才干显示。
我都按他们的方法试了,根本都不行,
所以要想真正的实现还是老老实实的自己去画一条虚线吧。
1.从android3.0開始,安卓关闭了硬件加速功能。所以就不能显示了,所以就是在 AndroidManifest.xml。或者是在activity中把硬件加速的功能关掉就能够了android:hardwareAccelerated="false"或者是view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
2.一个小伙伴的翻译。说什么height要大于dashWidth才干显示。
我都按他们的方法试了,根本都不行,
所以要想真正的实现还是老老实实的自己去画一条虚线吧。