Android 使用drawable 画竖直虚线

转自: android竖直虚线drawable 手机竖虚线怎么打

先使用Drawable 生产一条水平虚线

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line">
    <stroke
        android:width="1dp"
        android:color="#FF8C8C8C"
        android:dashWidth="4dp"
        android:dashGap="3dp" />
</shape>

使用Layer-list 旋转, 生成竖直虚线

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:left="-300dp"
        android:right="-300dp">
        <rotate
            android:drawable="@drawable/dashed_line"
            android:fromDegrees="90"
            android:toDegrees="90" />
    </item>
</layer-list>

说明:

    1. 使用rotate标签,让水平分割线, 旋转90度,变成垂直.
      但是,单纯旋转还是不够的, 因为分割线的尺寸,会受到View边界的限制, 如果View的尺寸为: W1dp*H24dp, 那么虚线的长度只有1dp, 旋转后,依旧是看不到的, 解决方法如下:
    1. 使用layoer-list, 扩展Drawable的尺寸, 通过指定left和right属性为负值, 可以让layer-list的边界超过View的边界, 这样再旋转, 虚线即可完整展示
  • 上面的left和right属性, 要设置成绝对值相等,因为旋转的锚点是中心点, 如果不对称, 旋转之后, 仍然看不到虚线.

如果虚线不能显示,把View的layerType设置为software,不过本人测试不设置也可以显示。
其实Shape还可以实现其他很多功能。比如: 角,一半圆角,圆角矩形,颜色的渐变,等等。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容