2012年9月29日 星期六

ExpandableListView 裡面的groupIndicator

SDK 4.0裡面 ExpandableListView的 groupIndicator有點醜 (左邊收合與展開的表現圖示),想要把他換掉,有一點教學的需求就順便把流程記下來

預設值是@android:drawable/expander_group_holo_light
換掉groupIndicator的方法很簡單,就在xml檔案裡面修改Group Indicator屬性即可

android:groupIndicator="stateful Drawable "

這裡需要一個drawable的.xml檔案,可以直接拷貝expander_group_holo_light.xml來改,如果不曉得這個檔案在哪裡,用最笨的方法在sdk了目錄裡面用Windows的檔案搜尋就可以找到。

檔案的內容如下
Source file
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 3     <item
 4         android:state_expanded="true"
 5         android:drawable="@drawable/expander_open" />
 6     <item
 7         android:drawable="@drawable/expander_close" />
 8 </selector>

這時候需要準備兩張圖片expander_open.9.png 和 expander_close.9.png。這份文件的重點有一部分在9png檔案,如果檔案不是用9png檔會被系統自動縮放且會失去原本的長寬比例,反而讓畫面變醜。