用selector設置控件選中和未選中狀態的背景圖片

一、選項男生,女生

1.效果如圖所示:

用selector只需要在代碼中設置setSelected(true):選中狀態,setSelected(true):未選中狀態,當然還有一種方法:用boolean和if else來判斷選中、未選中、設置字體的顏色和控件的背景色,此方法大家應該經常使用此處不做demol。

2.具體做法

步驟一:

在drawable下創建兩個selector類型的xml文件,分別命名是click_man_pic.xml、click_woman_pic.xml和click_textcolor_pressffffff_normalcccccc.xml。

1)click_man_pic.xml代碼如下:

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android">

<!-- 男生選中的圖片 -->

<item android:drawable="@mipmap/sign_icon_male1" android:state_selected="true"/>

<!--未選中的圖片(默認圖片) -->

<item android:drawable="@mipmap/sign_icon_male"/>

</selector>

如下圖所示:

 

2)click_woman_pic.xml代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 女生選中的圖片 -->
    <item android:drawable="@mipmap/sign_icon_female1" android:state_selected="true"/>
    <!--未選中的圖片(默認圖片) -->
    <item android:drawable="@mipmap/sign_icon_female"/>
</selector>

如下圖所示:

 

3)click_textcolor_pressffffff_normalcccccc.xml代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
     <!-- 選中的字體顏色-->
    <item android:color="#ffffff" android:state_selected="true"/>
     <!-- 未選中(默認)的字體顏色-->
    <item android:color="#CCCCCC"/>
</selector>

如下圖所示:

步驟二: 

在佈局文件中的設置,整個界面佈局就不黏貼了,就黏貼兩個Textview的佈局

<TextView
    android:id="@+id/tv_man"
    android:layout_below="@+id/tv_param"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="15sp"
    android:layout_marginTop="120dp"
    android:drawablePadding="10dp"
    android:layout_marginLeft="44dp"
    android:drawableTop="@drawable/click_man_pic"
    android:text="@string/strChooseSexMan"
    android:textColor="@drawable/click_textcolor_pressffffff_normalcccccc"
    android:gravity="center_horizontal"/>
<TextView
    android:id="@+id/tv_woman"
    android:layout_below="@+id/tv_param"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="15sp"
    android:layout_marginTop="120dp"
    android:drawablePadding="10dp"
    android:layout_marginRight="44dp"
    android:layout_alignParentRight="true"
    android:drawableTop="@drawable/click_woman_pic"
    android:text="@string/strChooseSexWoman"
    android:textColor="@drawable/click_textcolor_pressffffff_normalcccccc"
    android:gravity="center_horizontal"/>

如圖所示:

步驟三:

在代碼中的點擊事件的觸發,如下圖所示

這樣就可實現gif圖的效果了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章