1. 程式人生 > >android自定義Button樣式(清晰簡單)

android自定義Button樣式(清晰簡單)

最近在學習一下簡單的控制元件,如Button,TextView等...但系統提供的樣式大多都滿足不了,所以我們需要自己來自定義樣式來滿足自己的需求。

下面跟大家分享一下最近學到的一種自定義方式,以下用Button按鈕來做例子:

步驟1:

在res/drawable資料夾下建立檔案xml檔案,

步驟2:

在步驟1中建立的檔案中寫入自定義樣式的程式碼:

程式碼:

檔名:my_style.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false"><span style="white-space:pre">	</span>//設定當狀態為未點選時的樣式
        <shape> <span style="white-space:pre">				</span>//在shaoe內編寫自定義的樣式
            <solid android:color="#0F0"/>       //填充的顏色
            <corners android:radius="20dp"></corners><span style="white-space:pre">	</span>//邊角弧度
            <stroke android:color="#FFF" android:width="10dp"/>  //邊框設定 color:邊框顏色 , width:邊框厚度
        </shape>
    </item>
    <item android:state_pressed="true">         //同理,該處是設定點選狀態時的樣式
        <shape>
            <solid android:color="#ABCABA"/>
            <corners android:radius="250dp"></corners>
            <stroke android:color="#000" android:width="10dp"/>
        </shape>
    </item>

</selector>

步驟3:

在需要該樣式的Button中設定背景為my_style.xml

android:background="@drawable/my_style"
這就搞定啦!附上效果圖:

點選前:


點選後:


最後補充點知識:

<Item android:state_pressed = "?">這是是否點選的狀態

還有其他的狀態可以判斷出了,如:

state_foucsed 是否獲得焦點(注意控制元件中要設定屬性,android:focusable = "true" // 可獲得焦點)

state_selected 是否選中。

那其他的控制元件也可根據狀態的不同來設定不同的樣式了。

---努力學習,天天向上---