在Android程序開發中,我們經常會去用到Shape這個東西去定義各種各樣的形狀,shape可以繪制矩形環形以及橢圓,所以只需要用橢圓即可,在使用的時候將控件比如imageview或textview的高寬設置成一樣就是正圓,solid表示遠的填充色,stroke則代表遠的邊框線,所以兩者結合可以實現帶邊緣的圓,當然也可以直接加上size控制高寬。那么我首先帶你們了解一下Shape下有哪些標簽,并且都代表什么意思:
shape屬性:
rectangle:矩形
oval:橢圓
line:線,需要 stroke 來設置寬度
ring:環形
solid屬性:
color:填充顏色
stroke屬性:
color:邊框顏色
width:邊框寬度
dashWidth:虛線框的寬度
dashGap:虛線框的間隔
corners屬性:
radius:四個角的半徑
topRightRadius:右上角的半徑
bottomLeftRadius:右下角的半徑
opLeftRadius:左上角的半徑
bottomRightRadius:左下角的半徑
gradient屬性:
startColor:其實顏色
centerColor:中間顏色
endColor:結束顏色
centerX:中間顏色的相對X坐標(0 -- 1)
centerY:中間顏色的相對Y坐標(0 -- 1)
useLevel:(true/false), 是否用作LevelListDrawable的標志
angle是漸變角度,必須為45的整數倍。0從左到右,90從下到上,180從右到左,270從上到下
type:漸變模式。 默認線性漸變,可以指定漸變為radial(徑向漸變)或者sweep(類似雷達掃描的形式)
gradientRadius:漸變半徑,徑向漸變需指定半徑。
padding屬性:
left:左內邊距
top:上內邊距
right:右內邊距
bottom:下內邊距
size屬性:
width:寬
height:高
現在接下來我們通過一個例子,畫了五個不一樣的形狀,來詳細了解有關Shape的用法。例子如下:
1、畫橢圓虛線邊框背景,資源文件代碼如下:
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
android:radius="15dp"
android:topLeftRadius="8dp"
android:topRightRadius="8dp" />
android:dashGap="4dp"
android:dashWidth="4dp"
android:width="2dp"
android:color="@color/ellipse_dashed_line_color" />
2、畫實線透明邊框背景,資源文件代碼如下:
android:bottomLeftRadius="6dp"
android:bottomRightRadius="6dp"
android:radius="10dp"
android:topLeftRadius="6dp"
android:topRightRadius="6dp" />
android:width="1dp"
android:color="@color/ellipse_dashed_line_color" />
3、畫實線填充顏色邊框背景,資源文件代碼如下:
android:bottomLeftRadius="6dp"
android:bottomRightRadius="6dp"
android:radius="10dp"
android:topLeftRadius="6dp"
android:topRightRadius="6dp" />
android:width="1dp"
android:color="@color/ellipse_dashed_line_color" />
4、畫實線透明半邊橢圓邊框,資源文件代碼如下:
android:width="1.2dp"
android:color="#669df3" />
android:bottomRightRadius="10dp"
android:topRightRadius="10dp" />
android:bottom="8dp"
android:left="12dp"
android:right="12dp"
android:top="8dp" />
5、畫實線填充顏色半邊橢圓邊框,資源文件代碼如下:
android:bottomLeftRadius="10dp"
android:topLeftRadius="10dp" />
android:bottom="8dp"
android:left="12dp"
android:right="12dp"
android:top="8dp" />
效果圖如下:
如果想要源碼,請大家多多支持,分享到朋友圈,發送分享到朋友圈后的截屏和郵箱到此公眾號,小編會爭取第一時間把源碼發送給您。
公眾號“非著名程序員”,每天一篇原創技術分享和移動互聯網知識分享,微信公眾號:smart_android ,歡迎大家關注。