轉自: 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>
說明:
- 使用rotate標簽,讓水平分割線, 旋轉90度,變成垂直.
但是,單純旋轉還是不夠的, 因為分割線的尺寸,會受到View邊界的限制, 如果View的尺寸為: W1dp*H24dp, 那么虛線的長度只有1dp, 旋轉后,依舊是看不到的, 解決方法如下:
- 使用rotate標簽,讓水平分割線, 旋轉90度,變成垂直.
- 使用layoer-list, 擴展Drawable的尺寸, 通過指定left和right屬性為負值, 可以讓layer-list的邊界超過View的邊界, 這樣再旋轉, 虛線即可完整展示
上面的left和right屬性, 要設置成絕對值相等,因為旋轉的錨點是中心點, 如果不對稱, 旋轉之后, 仍然看不到虛線.
如果虛線不能顯示,把View的layerType設置為software,不過本人測試不設置也可以顯示。
其實Shape還可以實現其他很多功能。比如: 角,一半圓角,圓角矩形,顏色的漸變,等等。