У меня есть пользовательский компонент, что я хочу дать те же цвета как 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
документируется для установки по умолчанию к "вторичному цвету текста".
Я предполагаю, что был удачлив, в конце концов, но мне все еще не нравится тот небольшой мой фрагмент кода.
Вы ищете атрибуты. Атрибуты связывают виджеты со стилями. Например, android: background
- это то, что вы установили для определенного представления, но есть такие атрибуты, как android: panelBackground
и android: windowBackground
, которые вы можете использовать переопределение, чтобы повлиять на систему в целом.
Вы должны просмотреть R.attr , а затем указать эти атрибуты в своем виджете. Их должно быть несколько, связанных с TextView; имеет смысл загрузить исходный код Android и посмотреть, какие атрибуты используются.