shape 常用屬性
android:shape="rectangle" 矩形奖慌,默認值
android:shape="oval" 橢圓窘茁,此時corners (圓角節(jié)點)失效
android:shape="line" 直線,必須設置stroke(描邊)節(jié)點
android:shape="ring" 圓環(huán)
下面定義了6種圖形
-
corners (圓角)
android:radius="20dp" 直接定義4個圓角
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點方向 90- 6點方向 180 -3點方向 270 12點方向)
android:type (linear 線性漸變 默認值 , radial 放射漸變 起始顏色是圓心, sweep 滾動漸變)
android:centerY="0.4" 圓心y坐標
<?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 (定義內容離邊界的距離)
-
solid(填充顏色及汉,背景色)
<solid android:color="@color/white_alpha_32" />
-
size(尺寸)
無節(jié)點表示寬高自適應
<size android:height="@dimen/len_4"
android:width="@dimen/len_4"/>
-
stroke(描邊)
android:dashGap="@dimen/len_4" 每段虛線之間的間隔
android:dashWidth="@dimen/len_4" 每段虛線之間的寬度
上面2個同時存在才為虛線
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>
進階
點擊背景 實現變色
<?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>
<!--點擊時的效果 -->
<item>
<shape android:shape="rectangle">
<corners android:radius="22dp" />
<solid android:color="@color/black_alpha_112" />
</shape>
</item>
</selector>