drawable里的xml文件做繪圖資源非常方便,不需要適配屏幕dpi,幾個(gè)比較簡單的用法:
1.sharp
sharp是比較常用的drawable,可以繪制line、oval、rectangle和 ring。以sharp為例繪制一個(gè)紅色橢圓和藍(lán)色圓環(huán)。
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="@android:color/holo_red_light"/>
</shape>
預(yù)覽下:

sharp_oval_solid_red .png
接著畫一個(gè)外環(huán)寬度為8dp的圓環(huán)
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke
android:width="8dp"
android:color="@android:color/holo_blue_light"/>
</shape>

sharp_oval_stroke_blue .png
2.layer-list
故名思議,layer-list就是圖層,把幾個(gè)可繪制的drawable排列起來,layer-list最下邊的item會(huì)放置在最上層,我們把之前的紅色圓形和藍(lán)色環(huán)形重疊起來,繪制一個(gè)帶藍(lán)邊的紅圓。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
android:shape="oval">
<solid
android:color="@android:color/holo_red_light"/>
</shape>
</item>
<item>
<shape
android:shape="oval">
<stroke
android:width="8dp"
android:color="@android:color/holo_blue_light"/>
</shape>
</item>
</layer-list>
預(yù)覽:

layer_list.png
3.state-list
state-list是根據(jù)對(duì)象的狀態(tài)分別繪制不同的圖形,比如的是繪制一個(gè)圓形按鈕,平時(shí)是紅色,按下時(shí)是藍(lán)色。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true">
<shape android:shape="oval">
<solid android:color="@android:color/holo_blue_light"/>
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="@android:color/holo_red_light"/>
</shape>
</item>
</selector>
需要注意的是,按下狀態(tài)的item要寫在通常狀態(tài)之前。把這個(gè)xml文件設(shè)置一個(gè)button的background,就可以使用了。
推薦閱讀:
https://developer.android.google.cn/guide/topics/resources/drawable-resource