DashedLine
Github 地址:https://github.com/SenhLinsh/DashedLine
前言
一般情況下, 我們?cè)诓季掷L制實(shí)線和虛線, 可以使用shape來作為View的背景來實(shí)現(xiàn).
- 實(shí)線
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke
android:width="3dp"
android:color="@color/colorPrimary"/>
</shape>
- 虛線
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke
android:width="3dp"
android:color="@color/colorPrimary"
android:dashGap="3dp"
android:dashWidth="5dp"/>
</shape>
這個(gè)方法繪制實(shí)線的時(shí)候是沒問題的溶推,但是在繪制虛線時(shí)入蛆,很可能無法繪制成功灾常。因?yàn)槭褂胹hape繪制虛線需要開啟硬件加速肚菠。
當(dāng)然,有些人覺得那就開啟硬件加速唄硫惕,但是開啟硬件加速是有利有弊的颜懊,在沒有必要開啟的時(shí)候斑匪,我們完全可以嘗試另外的方法,那就是自定義View盏浇。
本項(xiàng)目就是在上訴的情況下建立的变丧。當(dāng)然,不僅僅于繪制直虛線绢掰,還有繪制圓形虛線的控件痒蓬,以及后續(xù)可能繼續(xù)開發(fā)的具有更多使用實(shí)用效果的虛線控件。
效果
繪制直線虛線和圓形虛線的效果如下:
XML代碼:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<com.linsh.dashedline.DashedCircleLine
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_gravity="center"
app:dashColor="@color/colorPrimary"
app:dashGap="35dp"
app:dashWidth="2dp"
app:strokeWidth="20dp"/>
<com.linsh.dashedline.DashedLine
android:layout_width="80dp"
android:layout_height="10dp"
android:layout_marginTop="10dp"
app:dashColor="@color/colorPrimary"
app:dashGap="5dp"
app:dashOrientation="horizontal"
app:dashWidth="5dp"
app:strokeWidth="2dp"/>
<com.linsh.dashedline.DashedLine
android:layout_width="10dp"
android:layout_height="100dp"
app:dashColor="@color/colorPrimary"
app:dashGap="5dp"
app:dashOrientation="vertical"
app:dashWidth="5dp"/>
<com.linsh.dashedline.DashedCircleLine
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center"
app:dashColor="@color/colorPrimary"
app:dashGap="1dp"
app:dashWidth="2dp"
app:strokeWidth="1dp"/>
</LinearLayout>
使用方法
attr屬性 | 說明 |
---|---|
dashColor | 虛線顏色 |
dashGap | 虛線間隔 |
dashWidth | 單個(gè)虛線長(zhǎng)度 |
strokeWidth | 虛線寬度 |
dashOrientation | 虛線方向 (horizontal--橫, vertical--豎) |