Создание списка состояний Drawable XML для фона - Android - PullRequest
3 голосов
/ 06 сентября 2011

Я пытаюсь заставить работать следующий список состояний. Идея состоит в том, чтобы создать белый фон.

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_selected="true"         
android:drawable="@android:color/transparent" /> 
<item android:state_selected="true" android:drawable="@android:color/transparent" /> 
<item android:state_pressed="true" android:state_selected="false"    
android:drawable="@android:color/transparent" /> 
<item android:state_selected="false" android:drawable="@color/WHITE" /> 
</selector>

Когда я пытаюсь скомпилировать это, я получаю следующую ошибку ..

@color/transparent and @color.WHITE don't exist.

Нужно ли где-то их определять, и если да, то как?

Спасибо!

Ответы [ 5 ]

1 голос
/ 26 октября 2016

В цветовой палитре Android нет прозрачного Цветовая палитра Android , однако вы можете определить непрозрачность, которая создаст ощущение прозрачности, вот хороший пример того, как ее использовать: Шестнадцатеричная прозрачность в цветах

Вот код снайпера о том, как объявить собственный цвет в res / value / colors.xml

<color name="colorWhite">#FFFFFF</color>

теперь с прозрачностью:

<color name="colorWhite">#FFFFFFFF</color>

используется в списке состояний:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/colorWhite" android:state_hovered="true"/>
</selector>
1 голос
/ 06 сентября 2011

Я думаю, что единственная проблема в том, что вы ссылаетесь непосредственно на цвет вместо действительного Drawable. Попробуйте сначала создать ColorDrawable и использовать его в вашем StateListDrawable.

При создании ColorStateList (который отличается от StateListDrawable, потому что это список цветов, а не Drawable с), вы можете напрямую использовать цвета ...

1 голос
/ 06 сентября 2011

Вы должны использовать @android:color, иначе он не знает, где определен цвет.

android:background="@android:color/white"
0 голосов
/ 26 июля 2012
<color name="white">#aarrggbb</color> will set the transparency
<color name="white">#80ffffff</color> will set white color with transparency value 80.
0 голосов
/ 06 сентября 2011

попробуйте создать файл ресурсов следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="white">#ffffff</color>
</resources>

посмотрим, знает ли кто-нибудь о прозрачном

...