Android Selector 用法

來源:互聯網
上載者:User

此貼為轉載 ,不是本人製作。

 

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檔案後,在沒有添加任何屬性時其內部代碼結構為:

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

下面就可以根據項目需求,在其內部定義為自己想要的樣式了,主要屬性如下:

<?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中添加如下屬性代碼

android:listSelector="@drawable/mylist_view"  

(2)在ListView的item介面中添加如下屬性代碼

android:background="@drawable/mylist_view"

(3)利用JAVA代碼直接編寫

Drawable drawable = getResources().getDrawable(R.drawable.mylist_view); listView.setSelector(drawable);

為了防止列表拉黑的情況發生,需要在ListView中添加以下的屬性代碼

android:cacheColorHint="@android:color/transparent"

屬性介紹:

android:state_selected選中

android:state_focused獲得焦點

android:state_pressed點擊

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


 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.