我正在實施ListView
MultiModeListener
,因此創建一個選擇器元素來突出顯示列表中選定的項目。自定義選擇器,背景顏色和android中的imageview
我的選擇看起來像:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="true"
android:drawable="@color/Thistle" />
</selector>
然而,所示的圖像中,我期望的理想狀態的上方。就像Whatsapp中的選擇器一樣。從我能做的事情來看,有一個半透明的「前景」圖像,在其上方有一個檢查符號的圖標/圖像。我想知道如何創建這樣的自定義選擇器,以便在每個選定項目的頂部設置我的背景圖像和圖標。
我用Selector
作爲前景元素在我的FrameLayout像這樣:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:descendantFocusability="blocksDescendants"
android:padding="6dip"
android:foreground="@drawable/statelist_item_background">
....
所以我可以有我的FrameLayout
的自定義選擇器,達到這樣的效果。如果完全不可能,我該如何開始在我的MultiModeListener
回調中以編程方式實現它。
PS:一看Color State documentation表明,我們只能在我們在我們的Selector
定義item
設置andoird:color
屬性。我希望我錯了。
編輯 - 1
試圖使用layer-list
像這樣:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="true">
<layer-list>
<item>
<bitmap android:gravity="center" android:src="@drawable/ic_done_white_24dp" />
</item>
<item android:drawable="@color/holo_purple" />
</layer-list>
</item>
</selector>
無法設定android:drawable
到半透明色像#80000000
。但那並不奏效。無論如何,bitmap
不可見。