Intereting Posts

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

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

[Редактировать]

Следующее, похоже, дает цвет текста моего TextView. Но это просто удача? Мне неинтересно, что android.R.attr.textColorSecondary файл по умолчанию будет использовать android.R.attr.textColorSecondary ? И почему does not 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 документируется по умолчанию как «цвет вторичного текста».

Думаю, мне повезло, но мне все еще не нравится этот маленький фрагмент кода.

Solutions Collecting From Web of "Как получить цвета по умолчанию на Android"

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

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