Android通過用代碼畫虛線橢圓邊框背景來學習一下shape的用法

        在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" />







發佈了74 篇原創文章 · 獲贊 26 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章