Я реализую ListView
MultiModeListener
и, следовательно, создаю элемент селектора, чтобы выделить выбранные элементы в списке.Пользовательский селектор с цветом фона и представлением изображения в android
Мой селектор выглядит примерно так:
<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 предполагает, что мы можем установить только andoird:color
атрибут в item
, что мы определяем в нашем Selector
. Надеюсь, я ошибаюсь.
Edit - 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
.