Подтвердить что ты не робот

Файлы Android.xml: Почему предопределенные цвета не работают для меня?

Когда я смотрю разное. Учебники Android и примеры, когда дело доходит до определения цветов, я очень часто вижу константы, такие как @color/red или @color/black и т.д. По какой-то странной причине НИКОГДА не работает для меня! Мне всегда нужно указывать цвета, используя обозначения #RGB, #ARGB,..., #AARRGGBB.

Как только я попытаюсь использовать любую из тех мнемонических констант, как, например, "@color/red" Я получаю сообщения об ошибках, подобные этим:

[...] C:\Users\mmo\Test\res\drawable\edit_text.xml:5: error: Error: No resource found that matches the given name (at 'drawable' with value '@color/orange').
[...] C:\Users\mmo\Test\res\drawable\myDrawable.xml:3: error: Error: No resource found that matches the given name (at 'drawable' with value '@color/black').
[...] C:\Users\mmo\Test\res\drawable\myDrawable.xml:4: error: Error: No resource found that matches the given name (at 'drawable' with value '@color/black').
[...] C:\Users\mmo\Test\res\drawable\myDrawable.xml:5: error: Error: No resource found that matches the given name (at 'drawable' with value '@color/green').
[...] C:\Users\mmo\Test\res\drawable\myDrawable.xml:6: error: Error: No resource found that matches the given name (at 'drawable' with value '@color/black').

Почему это так? Почему я не могу использовать эти предопределенные константы? Нужно ли префикс их с некоторым именем пакета (я пробовал @android:color/red, но это только вызвало другую ошибку)? Нужно ли мне самим указывать эти цвета? Если да: как и где? Любые идеи или предложения?

Майкл

4b9b3361

Ответ 1

Добавлен ли "colors.xml" в вашу папку res/values, где определены эти цветовые константы?

Ответ 2

Если вы хотите использовать цвета, предварительно определенные на платформе Android, синтаксис: @android: color/white. "Android:" в начале указывает, что ресурс не является частью вашего приложения.

Ответ 3

Цвет XML файла находится в папке значений, где он должен содержать значения цвета. В теге ресурсов.

<resources xmlns:android="http://schemas.android.com/apk/res/android">
<color name="green">#00ff00</color>

Ответ 4

Убедитесь, что ваш XML файл цвета находится в папке значения, а не в папке цвета.

Итак, вы должны иметь...

значения/colors.xml   

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <color name="red">#FF0000</color>
</resources>

и НЕ это...

цвет/colors.xml   

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <color name="red">#FF0000</color>
</selector>

Обратите внимание, что тег ресурсов, а не селектор.

Ответ 5

странно Android не обеспечивает достойный список цветов. И я говорю странно, потому что во время моей 30-летней карьеры это первый язык, который я встретил, который этого не делает. И это несмотря на то, что построено на Java, которая определяет цвета во всех основных библиотеках.

Те, которые определены, префиксны, поэтому вы их не найдете:) Чтобы найти их (если использовать eclipse), перейдите в XML-документ, где вам нужен цвет type android: background = "@android: color/и сделать Ctrl Space. На моей версии (текущем, как мы говорим) я получаю больше дюжины. например: holo_orange_dark

Итак, используйте это или жалуйтесь, чтобы Google исправил эту проблему. И я называю это проблемой, потому что нет смысла заставить всех разработчиков вручную описывать все цвета и значения.

Ответ 6

Важной частью этого, о которой никто не упомянул, является то, что ссылка на цвет должна быть

@color/black

но файл xml должен быть

colors.xml

(обратите внимание на множественное число в имени файла xml, но не на множественном числе @color)