Как получить цвета по умолчанию на Android

У меня есть пользовательский компонент, что я хочу дать те же цвета как TextView. Таким образом, я не хочу копировать его цвета, я хочу получить фон по умолчанию и основные цвета, если существует такое понятие на андроиде.

[Править]

Следующее, кажется, приводит к цвету текста моего TextView. Но это - просто удача? Это не интуитивно мне, которого использовал бы TextView по умолчанию android.R.attr.textColorSecondary? И почему не делает resolveAttribute возвратить цвет непосредственно?

TypedValue tv = new TypedValue();
getContext().getTheme().resolveAttribute(android.R.attr.textColorSecondary, tv, true);
Color holyColor = getResources().getColor(tv.resourceId);

[Править]

Я нашел исходный код TextView по android.git.kernel.org, но это, казалось, содержало много ссылок на com.android.internal.R, который я не думаю, что должен использовать в своем собственном коде. Я в настоящее время ищу некоторое доказательство это TextView использование android.R.attr.textColorSecondary.

[Править]

Я нашел некоторое доказательство по developer.android.com в styles.xml это TextView использование android.R.attr.textAppearanceSmall. textAppearanceSmall документируется для установки по умолчанию к "вторичному цвету текста".

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

12
задан Steinbitglis 2 July 2010 в 22:25
поделиться

1 ответ

Вы ищете атрибуты. Атрибуты связывают виджеты со стилями. Например, android: background - это то, что вы установили для определенного представления, но есть такие атрибуты, как android: panelBackground и android: windowBackground , которые вы можете использовать переопределение, чтобы повлиять на систему в целом.

Вы должны просмотреть R.attr , а затем указать эти атрибуты в своем виджете. Их должно быть несколько, связанных с TextView; имеет смысл загрузить исходный код Android и посмотреть, какие атрибуты используются.

0
ответ дан 3 December 2019 в 00:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: