1. 程式人生 > >android 在 button、textview等控制元件按下和選中的時候改變顏色或圖片實現方法

android 在 button、textview等控制元件按下和選中的時候改變顏色或圖片實現方法

首先,在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"/>