android 在 button、textview等控制元件按下和選中的時候改變顏色或圖片實現方法
阿新 • • 發佈:2019-02-06
首先,在res資料夾下新建一個資料夾drawable,這是無關解析度的:
在下面建立一個xml檔案:select.xml
方法1
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- state_selected為true是選中,add_managebg_down、add_managebg是圖片放在drawable資料夾下--> <!-- <item android:drawable="@drawable/add_managebg_down" android:state_selected="true"/> <item android:drawable="@drawable/add_managebg" android:state_selected="false"/> --> <!-- state_pressed為true是按下,normal、pressed是顏色程式碼在value資料夾下的string.xml檔案裡新增--> <item android:drawable="@drawable/normal" android:state_pressed="true"/> <item android:drawable="@drawable/pressed" android:state_pressed="false"/> </selector>
方法2
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <shape><!--shape是用來定義形狀的--> <corners android:radius="8px" /><!--corners 圓角。corners節點配置四周園角的半徑--> <stroke android:width="1dp" android:color="#EEE5DE" /><!--stroke 描邊。--> <gradient android:angle="45" android:centerColor="#ffffff" android:endColor="#FFAEEEEE" android:startColor="#FFAEEEEE" /> <!--gradient定義該形狀裡面為漸變色填充,startColor起始顏色,endColor結束顏色,centerColor中間顏色,,angle表示方向角度。 當angle=0時,漸變色是從左向右。 然後逆時針方向轉,當angle=90時為從下往上。--> </shape> </item> <item> <shape> <corners android:radius="8px" /> <stroke android:width="1dp" android:color="#EEE5DE" /> <gradient android:angle="45" android:centerColor="#FFAEEEEE" android:endColor="#ffffff" android:startColor="#ffffff" /> </shape> </item> </selector>
在res資料夾下的value資料夾下的string.xml檔案裡新增:
<drawable name="normal">#ff6501</drawable>
<drawable name="pressed">#a44100</drawable>
TextView新增android:background="@drawable/select"
<TextView android:id="@+id/tab_label" android:layout_width="fill_parent" android:layout_height="50.0dip" android:gravity="center" android:textColor="#ffffff" android:background="@drawable/select" android:textSize="26sp"/>