Android的GridView中的選中圖示後圖示的背景顏色

我叫阿狸貓發表於2014-02-28

1.首先在GridView元件中新增android:listSelector="@android:color/transparent",表示選中圖示後顏色是透明的(給使用者的感覺就是根本不曉得點沒點圖示)

2.在drawable資料夾下建立item選中,獲取焦點,預設,這些狀態和顏色的對應關係的配置檔案

3.在GridView中item的佈局檔案中引入第二步建立的配置檔案android:background="@drawable/home_selector"


main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
	<GridView 
	    android:id="@+id/haha"
	    android:numColumns="3"

	    android:listSelector="@android:color/transparent"
	    
	    android:layout_width="fill_parent"
    	android:layout_height="fill_parent"
	    >
	</GridView>
</LinearLayout>

item.xml(GridView中的元件的佈局配置檔案)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/seletced"
    android:orientation="vertical" ><!--android:background="@drawable/seletced"匯入最後那個狀態和顏色之間對應關係的配置檔案 -->
    
	<ImageView 
	    android:layout_width="40dp"
    	android:layout_height="40dp"
    	android:src="@drawable/weishi"
	    />
	
	<TextView 
	    android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="哈哈哈哈"
	    />
</LinearLayout>

在valuse資料夾下建立顏色的資原始檔(就是顏色名稱和顏色的值對應)

color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="trans">@android:color/transparent</color><!-- 透明 -->
     <color name="green">#33FF33</color>
</resources>



在drawable資料夾下建立按鈕選中,獲取焦點,預設狀態和顏色之間的對應關係

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/green" android:state_pressed="true"/><!-- @color表示的是color.xml  green表示name=green的標籤裡的屬性 -->
    <!-- pressed -->
    <item android:drawable="@color/green" android:state_focused="true"/>
    <!-- focused -->
    <item android:drawable="@color/trans"/>
    <!-- default -->
</selector>


在佈局檔案中引入  狀態和顏色之間對應的xml。

在狀態和顏色之間對應的xml中引用color.xml中定義的顏色(這一步可換成圖片引用,因為當item android:drawable="@drawable/button_green_on"時,表示引用的是一張圖片,也就是說按下的時候是一張圖片,鬆開的時候是另一張圖片,這時候是圖片之間的切換了而不是顏色之間的切換了。)


效果如下:




相關文章