У меня есть кнопка, которая использует <selector>
как часть ее drawable
, определенной в атрибуте android:background
в стиле. Затем селектор использует несколько drawable
, для которых требуется атрибут. Как передать этот атрибут из селектора?
wdg_button. xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/wdg_button_pressed" /> <!-- pressed -->
<item android:state_focused="true" android:drawable="@drawable/wdg_button_normal" /> <!-- focused -->
<item android:drawable="@drawable/wdg_button_normal" />
</selector>
wdg_button_normal. xml Каждый из В списке элементов, перечисленных в <selector>
, есть элементы с двумя атрибутами ...
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:bottom="0dp"
android:top="4dp"
android:left="0dp"
android:right="0dp">
<shape android:shape="rectangle">
<corners android:radius="2dp" />
<solid android:color="?attr/shadow_color" />
</shape>
</item>
<item android:bottom="4dp"
android:top="4dp"
android:left="0dp"
android:right="0dp">
<shape android:shape="rectangle">
<corners android:radius="2dp" />
<solid android:color="?attr/face_color" />
</shape>
</item>
</layer-list>
Вот мой attrs.xml
<resources>
<declare-styleable name="icon">
<attr name="icon_color" format="color" />
<attr name="accent_color" format="color" />
</declare-styleable>
<declare-styleable name="button">
<attr name="shadow_color" format="color" />
<attr name="face_color" format="color" />
</declare-styleable>
</resources>
Я хотел бы иметь возможность создать кнопка устанавливает face_color
и shadow_color
программно, и предпочтительнее использовать оба атрибута по умолчанию для цветовой схемы. Я думаю, что мне понадобится селектор, чтобы передать значения каждому drawable
, и мне нужно как-то получить доступ к селектору, чтобы установить атрибут.
Возможно ли это или существует альтернатива для достижения того же эффект.