Android 使用shape實現虛線或者虛線框
阿新 • • 發佈:2019-01-05
畫一條虛線作為分割線
1.先寫一個shape,命名為shape_line_dash.xml
虛線
?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="#f3f3f3" android:dashWidth="3dp" android:dashGap="3dp" /> </shape>
虛線框
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="1dp"
android:color="#f3f3f3"
android:dashWidth="3dp"
android:dashGap="3dp" />
</shape>
虛線圓
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <stroke android:width="1dp" android:color="#f3f3f3" android:dashWidth="3dp" 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="-2dp" android:right="-2dp" android:bottom="-2dp"> <shape> <stroke android:width="1dp" android:color="#f3f3f3" android:dashWidth="3dp" android:dashGap="3dp" /> </shape> </item> </layer-list>
底部虛線
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:left="-2dp"
android:right="-2dp"
android:top="-2dp">
<shape>
<stroke
android:width="1dp"
android:color="#f3f3f3"
android:dashWidth="3dp"
android:dashGap="3dp" />
</shape>
</item>
</layer-list>
2.使用
<View
android:layerType="software"
android:layout_width="match_parent"
android:layout_height="3dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="15dp"
android:background="@drawable/shape_line_dash"/>
注意:
1.引用的時候,View的height要大於shape中stroke的width,不然會顯示不出來,或者顯示不全。
2.還要設定一個屬性layerType為software,不然顯示出來的是實線。