對於shape的一些屬性老是忘記,每次都要去查找,爲了方便我就自己記錄下來,方便以後忘記了再查看這些屬性。
在shape中有幾個屬性rectangle、oval、line、ring
1.環形ring
在shape標籤中把shape屬性設置爲ring類型
然後在shape標籤中設置以下屬性(這些屬性只能在shape值爲ring是使用)
android:innerRadius 內環的半徑,尺寸單位是dp(不設置這個參數,會有個默認值)
android:thickness 環的寬度,尺寸單位是dp(一定要設置的參數)
android:useLevel boolean值,如果當做是LevelListDrawable使用時值爲true,否則爲false. (這條屬性一定要設置,不然看不見效果,暫時先設置爲false)
android:innerRadiusRatio 浮點型,以環的寬度比率來表示內環的半徑。默認是9,就是環的寬度乘以9再除以2就是內環半徑的長度
android:thickne***atio 浮點型,以環的寬度比率來表示環的厚度。
2.橢圓oval
可以通過子標籤size設置橢圓大小,當寬和高相等時就是圓。一般也不再子標籤size中設置寬高,而是設置控件的寬高。
3.矩形rectangle
可以通過子標籤size標籤設置矩形大小,當寬和高相等時就是正方形。一般也不再子標籤size中設置寬高,而是設置控件的寬高。
在shape沒有指定時,默認就是矩形
4.直線line
可以畫一條直線,也可以畫一條虛線
在shape的子標籤中有gradient、corners、padding、size、solid、stroke
1.描形狀的線stroke
android:width="dimension" 線的粗細
android:color="color" 線的顏色
// 以下兩個屬性是設置虛線時使用,實線不設置這兩個屬性
android:dashWidth="dimension" 每節虛線的長度
android:dashGap="dimension" 每節虛線直接的間隙寬度
注:在畫ring,line時這個屬性必須設置,在畫oval,rectangle時需要描邊就設置,不需要就不設置
2.填充顏色solid
android:color="color" 需要填充形狀內部顏色時使用這個屬性
注:在畫line時不要設置這個屬性,在畫ring,oval,rectangle是需要實心就設置,需要空心就不設置
3.設置圖片大小size
android:width="dimension" 設置寬度
android:height="dimension" 設置高度
注:在畫oval時寬高相等就是圓形,在畫rectangle是寬高相等就是正方形,不過一般不在這裏設置,基本在控件設置寬高
4.內邊距padding
android:left="dimension" 設置左內邊距
android:top="dimension" 設置上內邊距
android:right="dimension" 設置右內邊距
android:bottom="dimension" 設置下內邊距
注:一般不用設置這個屬性
5.圓角corners
android:radius="dimension" 全部的圓角半徑
//上面全部都圓角,和下面四個屬性不共存,要麼全部都圓角,要麼根據下面屬性給每個角設置
android:topLeftRadius="dimension" 左上角的圓角半徑
android:topRightRadius="dimension" 右上角的圓角半徑
android:bottomLeftRadius="dimension" 左下角的圓角半徑
android:bottomRightRadius="dimension" 右下角的圓角半徑
注:圓角一般是在rectangle情況下使用
6.漸變色gradient
android:type=["linear" | "radial" | "sweep"] 共有3中漸變類型,線性漸變(默認)/放射漸變/掃描式漸變
android:startColor="color" 漸變開始點的顏色
android:centerColor="color" 漸變中間點的顏色,在開始與結束點之間
android:endColor="color" 漸變結束點的顏色
android:angle="integer" 漸變角度,必須爲45的倍數,0爲從左到右,90爲從上到下
android:gradientRadius="float" 漸變的半徑,只有當漸變類型爲radial時才能使用
android:centerX="float" 漸變中心X的相當位置,範圍爲0~1,從左到右,默認0.5
android:centerY="float" 漸變中心Y的相當位置,範圍爲0~1,從上到下,默認0.5
android:useLevel="boolean" 使用LevelListDrawable時就要設置爲true。設爲false時纔有漸變效果
注:當類型type爲linear時,angle屬性纔有效;當類型type爲radial時,gradientRadius屬性必須設置;當類型type爲sweep時,centerX和centerY屬性纔有效。