Android Selectorの使い方

2727 ワード

これは転載で、本人が作ったものではありません.
 
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ファイル
作成したファイルを参照するには、次の3つの方法があります.
(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_フォーカス取得
android:state_pressedクリック
android:state_enabledはイベントに応答するかどうかを設定し、すべてのイベントを指します.