美文网首页
Android实现水平虚线和竖直虚线

Android实现水平虚线和竖直虚线

作者: 北铭 | 来源:发表于2019-08-11 00:30 被阅读0次

    水平虚线

    <?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="#747474"
            android:dashWidth="6dp"
            android:dashGap="3dp" />
    </shape>
    

    竖直虚线

    思路一:

    先写横虚线,然后再通过旋转获得竖直虚线

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item
            android:left="-60dp"
            android:right="-60dp">
            <rotate android:drawable="@drawable/line_horizontal"
                    android:visible="true"
                    android:fromDegrees="90"/>
        </item>
    </layer-list>
    

    这个地方为啥需要设置left和right是-60dp呢?

    假如我们想显示的竖直的线的高度是120dp,我的view的宽度是10dp水平方向上能显示的虚线的宽度就是10dp,当旋转90度后所能显示的高度也只有10dp,所以我们需要设置左右都为-60dp的偏移量,这样他在先画水平线的时候,由于负的偏移量(就和负的margin一样),就可以画出120dp长的线,然后再旋转,就可以得到一条竖直虚线。

    思路二:

    先画一个虚线方框,然后再拿一个色块将不需要的部分挡住

    <?xml version="1.0" encoding="UTF-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <!--先画一个虚线方框-->
        <item>
            <shape android:shape="rectangle">
                <size android:width="4dp" />
                <stroke
                    android:width="2dp"
                    android:color="@color/lesson_schedule_bg"
                    android:dashGap="4dp"
                    android:dashWidth="10dp" />
            </shape>
        </item>
        <!--再画一个白色色块将虚线方框的部分挡住,只剩下左边一条虚线边-->
        <item android:left="2dp">
            <shape android:shape="rectangle">
                <solid android:color="#FFFFFF" />
            </shape>
        </item>
    </layer-list>
    

    参考文章:
    https://www.jianshu.com/p/8d384490a180
    https://blog.csdn.net/greenredshark/article/details/80927506

    相关文章

      网友评论

          本文标题:Android实现水平虚线和竖直虚线

          本文链接:https://www.haomeiwen.com/subject/sktjjctx.html