drawable xml繪圖簡單用法

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容