Android实现虚线

最近在写一些安卓的东西,发现项目中有遇到显示虚线分割线的的地方,如果用图片就很不好适配了,所以就索性差一些资料看看能不能用代码实现,经过反复查找资料找到了对应的简单实现方式,只用实现一个用xml写shape实现的drawable作为一个View的背景就能实现虚线分割线,线面来说实现方式。

1、首先先看dash_line.xml这个drawable文件

<?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="0.5dp"
        android:dashGap="2dp"
        android:dashWidth="4dp"
        android:color="#d2d2d2" />
    <!-- 虚线高度 -->
    <size android:height="0.5dp" />
</shape>

其中width这个值越小虚线的分段越小,dashGap是分段间的间隔,如果想要虚线效果这个值必须大于0。

2、下面来说View的写法

    <View
        android:id="@+id/line"
        android:layout_width="match_parent"
        android:layout_height="1.5dp"
        android:background="@drawable/dash_line"
        android:layerType="software"/>

layout_height写了1.5是因为写成1你会发现这根线根本不显示所以在这写成1.5就行了,然后background生成我们刚用shape写的drawable。如果不添加 android:layerType=”software” 这个属性那么显示的仍然是一条实线,这个应该是版本兼容问题,总之做虚线效果加上它就行。

0 0 vote
Article Rating
Subscribe
提醒
guest
0 评论
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x