2011-01-02 3 views
2

Я хочу установить цвета для щелчка вместо изображений. Это не дает никаких ошибок, кроме принудительного закрытия во время выполнения. Возможно ли это сделать или может использоваться только для изображений?Использование цветов в селекторе xml

код Пытаюсь ниже:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_focused="true" android:state_pressed="true" android:background="#00C0FF" /> 
    <item android:state_focused="true" android:state_pressed="false" android:background="#0060FF" /> 
    <item android:state_focused="false" android:state_pressed="true" android:background="#00C0FF" /> 
    <item android:state_focused="false" android:state_pressed="false" android:background="#FFFFFF" /> 

</selector> 

ответ

3

Не согласно documentation

<item> 
    Defines a drawable to use during certain states, as described by its attributes. Must be a child of a <selector> element. 

    android:drawable 
     Drawable resource. **Required.** Reference to a drawable resource. 

Вы можете создать простую форму вытяжку для хранения цветового

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#33FF33"/> 
</shape> 
+0

Это определение является отличным решением этой проблемы. Thanx! – Espen

1

Возможно ли это, чтобы сделать это, или может Selector использоваться только для изображений?

Нет, это не имеет никакого смысла (по крайней мере, для меня). Без «drawable», как он точно узнает «что», чтобы установить state_focused и state_pressed?

Почему бы просто не создать отдельные чертежи (например, растровые изображения) и предоставить их как чертежи для каждого элемента?

+0

Ну, андроид: фон тег может работать с обеими. Если вы используете андроид: background = "@ drawable/image", он использует изображение, если андроид: background = "# FFFFFF" использует цвет. Я вижу, что он должен быть в папке с возможностью рисования, хотя это означает, что в селекторе xml должна быть своя папка или что drawable также может быть цветом. Нет смысла использовать изображения для простых цветов на устройстве, где ограничены ресурсы. – Espen

+0

Справедливый комментарий. Как я уже сказал, я лично не мог понять, как это может работать без «чего-то», которое могло бы иметь «сосредоточенные» и «нажатые» состояния. Ответ Дарена находит хорошую середину между вашим подходом и моим. Говоря о том, что небольшие одноцветные изображения очень хорошо сжимаются (используя минимальные ресурсы) и могут расширяться в пользовательском интерфейсе без деградации. – Squonk

+0

Также я предполагаю, что андроид «создает» изображение из формы так же, как если бы это было изображение - так как ресурс был бы одинаковым. Просто делать это способ выглядит лучше :-) – Espen

Смежные вопросы