shape 常用屬性
android:shape="rectangle" 矩形,默認(rèn)值
android:shape="oval" 橢圓,此時(shí)corners (圓角節(jié)點(diǎn))失效
android:shape="line" 直線,必須設(shè)置stroke(描邊)節(jié)點(diǎn)
android:shape="ring" 圓環(huán)
下面定義了6種圖形
-
corners (圓角)
android:radius="20dp" 直接定義4個(gè)圓角
android:bottomLeftRadius="20dp" 左下角
android:bottomRightRadius="20dp" 右下角
android:topLeftRadius="20dp" 左上角
android:topRightRadius="20dp" 右上角
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!--圓角 弧度為 20-->
<corners android:radius="20dp"
android:bottomLeftRadius="20dp"
android:bottomRightRadius="20dp"
android:topLeftRadius="20dp"
android:topRightRadius="20dp"/>
<!--填充顏色-->
<solid android:color="@color/white_alpha_32" />
</shape>

image.png
-
gradien(漸變)
android:angle ( 起始角度 0 -9點(diǎn)方向 90- 6點(diǎn)方向 180 -3點(diǎn)方向 270 12點(diǎn)方向)
android:type (linear 線性漸變 默認(rèn)值 , radial 放射漸變 起始顏色是圓心, sweep 滾動(dòng)漸變)
android:centerY="0.4" 圓心y坐標(biāo)
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="270"
android:centerY="0.4"
android:startColor="@color/black_alpha_224"
android:centerColor="@color/black_alpha_80"
android:endColor="@color/trans"
/>
</shape>

image.png
-
padding (定義內(nèi)容離邊界的距離)
-
solid(填充顏色,背景色)
<solid android:color="@color/white_alpha_32" />
-
size(尺寸)
無節(jié)點(diǎn)表示寬高自適應(yīng)
<size android:height="@dimen/len_4"
android:width="@dimen/len_4"/>
-
stroke(描邊)
android:dashGap="@dimen/len_4" 每段虛線之間的間隔
android:dashWidth="@dimen/len_4" 每段虛線之間的寬度
上面2個(gè)同時(shí)存在才為虛線
android:width="@dimen/len_4" 描邊厚度
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke android:color="@color/black"
android:width="@dimen/len_2"
/>
<corners android:radius="20dp"/>
<size android:width="400dp"
android:height="400dp"/>
</shape>

image.png
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!--圓角 弧度為 20-->
<corners android:radius="20dp" />
<solid android:color="@color/white_alpha_32" />
</shape>
v21 漣漪效果
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/white_alpha_48">
<!--漣漪 效果 api 21-->
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<corners android:radius="20dp" />
<solid android:color="@color/white" />
</shape>
</item>
</ripple>
v21 以上
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/black_alpha_32"/>
v21 以下
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="@color/black_alpha_16" />
</shape>
</item>
</selector>
進(jìn)階
點(diǎn)擊背景 實(shí)現(xiàn)變色
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false">
<shape android:shape="rectangle">
<corners android:radius="22dp" />
<solid android:color="@color/trans" />
</shape>
</item>
<!--點(diǎn)擊時(shí)的效果 -->
<item>
<shape android:shape="rectangle">
<corners android:radius="22dp" />
<solid android:color="@color/black_alpha_112" />
</shape>
</item>
</selector>