Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Selector 用法

Android Selector 用法

編輯:關於Android編程

Android中的Selector主要是用來改變ListView和Button控件的默認背景。其使用方法可以按一下步驟來設計:(以在mylist_view.xml為例)


1.創建mylist_view.xml文件

首先在res目錄下新建drawable文件夾,再在新建的drawable文件夾中新建mylist_view.xml,其目錄結構為:res/drawable/mylist_view.xml。


2.根據具體需求編輯mylist_view.xml文件

新建mylist_view.xml文件後,在沒有添加任何屬性時其內部代碼結構為:

[html]
<SPAN style="FONT-SIZE: 12px"><?xml version="1.0" encoding="utf-8" ?>    
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
  
</selector></SPAN> 

<?xml version="1.0" encoding="utf-8" ?>  
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 
</selector>下面就可以根據項目需求,在其內部定義為自己想要的樣式了,主要屬性如下:

[html]
<SPAN style="FONT-SIZE: 12px"><?xml version="1.0" encoding="utf-8" ?>    
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
<!-- 默認時的背景圖片-->   
  <item android:drawable="@drawable/pic1" />     
<!-- 沒有焦點時的背景圖片 -->   
  <item android:state_window_focused="false"    
        android:drawable="@drawable/pic1" />    
<!-- 非觸摸模式下獲得焦點並單擊時的背景圖片 -->   
  <item android:state_focused="true" android:state_pressed="true"   android:drawable= "@drawable/pic2" />  
<!-- 觸摸模式下單擊時的背景圖片-->   
<item android:state_focused="false" android:state_pressed="true"   android:drawable="@drawable/pic3" />   
<!--選中時的圖片背景-->   
  <item android:state_selected="true"   android:drawable="@drawable/pic4" />    
<!--獲得焦點時的圖片背景-->   
  <item android:state_focused="true"   android:drawable="@drawable/pic5" />    
</selector></SPAN> 

<?xml version="1.0" encoding="utf-8" ?>  
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 默認時的背景圖片--> 
  <item android:drawable="@drawable/pic1" />   
<!-- 沒有焦點時的背景圖片 --> 
  <item android:state_window_focused="false"  
        android:drawable="@drawable/pic1" />  
<!-- 非觸摸模式下獲得焦點並單擊時的背景圖片 --> 
  <item android:state_focused="true" android:state_pressed="true"   android:drawable= "@drawable/pic2" />
<!-- 觸摸模式下單擊時的背景圖片--> 
<item android:state_focused="false" android:state_pressed="true"   android:drawable="@drawable/pic3" /> 
<!--選中時的圖片背景--> 
  <item android:state_selected="true"   android:drawable="@drawable/pic4" />  
<!--獲得焦點時的圖片背景--> 
  <item android:state_focused="true"   android:drawable="@drawable/pic5" />  
</selector>3.引用mylist_view.xml文件

三種方法可以來引用剛才創建的文件:

(1)在ListView中添加如下屬性代碼

[html]
<SPAN style="FONT-SIZE: 12px">android:listSelector="@drawable/mylist_view"  </SPAN> 

android:listSelector="@drawable/mylist_view"  (2)在ListView的item界面中添加如下屬性代碼

[html]
<SPAN style="FONT-SIZE: 12px">android:background="@drawable/mylist_view"</SPAN> 

android:background="@drawable/mylist_view"(3)利用JAVA代碼直接編寫

[html]
<SPAN style="FONT-SIZE: 12px">Drawable drawable = getResources().getDrawable(R.drawable.mylist_view);  
listView.setSelector(drawable);</SPAN> 

Drawable drawable = getResources().getDrawable(R.drawable.mylist_view);
listView.setSelector(drawable);為了防止列表拉黑的情況發生,需要在ListView中添加以下的屬性代碼

[html]
<SPAN style="FONT-SIZE: 12px">android:cacheColorHint="@android:color/transparent"</SPAN> 

android:cacheColorHint="@android:color/transparent"屬性介紹:

android:state_selected選中

android:state_focused獲得焦點

android:state_pressed點擊

android:state_enabled設置是否響應事件,指所有事件


 

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved