1、先使用Drawable 生产一条水平虚线
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke
android:width="1dp"
android:color="#6480ae"
android:dashWidth="5dp"
android:dashGap="3dp" />
</shape>
2、使用Layer-list 旋转, 生成竖直虚线
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:left="-300dp"
android:right="-300dp">
<rotate
android:drawable="@drawable/shape_c7d1e3_line"
android:fromDegrees="90"
android:toDegrees="90" />
</item>
</layer-list>
说明:
使用rotate标签,让水平分割线, 旋转90度,变成垂直.
但是,单纯旋转还是不够的, 因为分割线的尺寸,会受到View边界的限制, 如果View的尺寸为: W1dp*H24dp, 那么虚线的长度只有1dp, 旋转后,依旧是看不到的, 解决方法如下:
使用layoer-list, 扩展Drawable的尺寸, 通过指定left和right属性为负值, 可以让layer-list的边界超过View的边界, 这样再旋转, 虚线即可完整展示
上面的left和right属性, 要设置成绝对值相等,因为旋转的锚点是中心点, 如果不对称, 旋转之后, 仍然看不到虚线.
如果虚线不能显示,把View的layerType设置为software,不过本人测试不设置也可以显示。
其实Shape还可以实现其他很多功能。比如: 角,一半圆角,圆角矩形,颜色的渐变,等等。
网友评论