android自定義Button樣式(清晰簡單)
阿新 • • 發佈:2019-02-16
最近在學習一下簡單的控制元件,如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 是否選中。
那其他的控制元件也可根據狀態的不同來設定不同的樣式了。
---努力學習,天天向上---