2011-12-30 3 views
13

Android-программирование сводит меня с ума. XML или программируемые способы разработки GUI - это правильный завтрак старых кошек из кода - здесь есть кое-что, некоторые вещи там.Цвета цвета системы Android

Мое текущее разочарование пытается сохранить все XML, и я хотел бы установить цвет фона TextView того же цвета, что и цвет фона Button, не указывая точный цветовой код. Я хотел бы использовать системную константу, что-то вроде java.awt.SystemColor.control, но указано в XML.

Есть ли способ сделать это без необходимости реагировать на кучу вещей? Я ищу решение вроде: android:background="{Insert constant here}".

ответ

17

Вы должны иметь файл в рес/значений, называемых colors.xml, он должен выглядеть следующим образом:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="white">#FFFFFF</color> 
    <color name="grey">#7A7A7A</color> 
    <color name="background">#0044AA</color> 
    <color name="bluelight">#449DEF</color> 
    <color name="bluedark">#2F6699</color> 
    <color name="greenlight">#70C656</color> 
    <color name="greendark">#53933F</color> 
    <color name="orangelight">#F3AE1B</color> 
    <color name="orangedark">#BB6008</color> 
    <color name="black">#000000</color> 
</resources> 

Тогда вы можете просто позвонить цвет в XML следующим образом:

android:background="@color/greenlight" 
+3

Но я не хочу, чтобы определить цвет. Я хочу указать системный стиль. – zam664

+1

Это, как правило, предпочтительный способ сделать это, так как не так много системных цветов, но вы можете использовать android: background = "@ android: color/white". Вы можете найти полный список здесь: http://developer.android.com/reference/android/R.color.html –

+0

У меня есть постоянная цвета для ex: 17170449, которую мне нужно преобразовать в шестнадцатеричный десятичный код. Является ли это возможным? Спасибо заранее @MattHarris –

20

Вы можете использовать такие вещи, как «@ color/white» или для системных констант Android, «@android: color/holo_red_light». Кроме того, если вы хотите большего контроля, вы всегда можете определить общий фон в вытяжке и установить фон для «@ вытяжке/mydrawable»

Список ресурсов, доступных для андроида: цвет здесь (как background_dark): http://developer.android.com/reference/android/R.color.html

+1

Это проблема, которую я испытываю с Android. Я не хочу переопределять все сам. Я хочу использовать стандарты в системе. Меня не волнует, что эти стандарты, я просто хочу, чтобы похожий пользователь выглядел и чувствовал. – zam664

+0

Именно поэтому вы должны использовать android: color/... существует множество существующих пресетов, которые не являются цветными и будут меняться в зависимости от производителя. обновленный ответ со ссылкой –

+1

Просто хедз-ап, ваш пример неверен, нет «@android: цвет/красный» –

1

используется так: android:background="#FF00FF"

2

проверить эту страницу: http://android-er.blogspot.com/2010/03/using-color-in-android.html

Вы можете использовать: "@android: цвет/белый" в вашем XML. Я предполагаю, что поддерживаются несколько других общих цветов, но я точно не знаю, какие именно.

Предпочтительным решением, как правило, является создание собственного файла ресурсов colors.xml и ссылки на те, которые вы там разместили.

0

Вам не нужно с помощью файла XML для создания XML констант,

это может помочь вам: Java constants file

+0

Я хочу сделать это в XML, а не в Java. Я могу получить цвета через Java-программирование, но намеревается использовать XML для дизайна графического интерфейса и иметь все в одном месте. Я не хочу половину моего графического интерфейса в XML и половину в Java. – zam664

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