Android: Как я могу определить пользовательские цвета, рисунки и т. д. в темах?
Я надеюсь, что смогу объяснить, что я после. По сути, мои пользователи просили меня разрешить разные взгляды в моем приложении, что, я надеюсь, я могу сделать с темами.
Я надеялся, что смогу сделать что-то вроде этого:
<style name="NewTheme" parent="android:Theme.Dark">
<item name="labelColor">#f90</item>
<item name="buttonColor">#fff</item>
<item name="buttonBg">@drawable/button</item>
</style>
<style name="OldTheme" parent="android:Theme.Dark">
<item name="labelColor">#fa0</item>
<item name="buttonColor">#88f</item>
<item name="buttonBg">@drawable/button_old</item>
</style>
А затем сослаться на эти значения в моем файле styles.xml:
<style name="labelStyle">
<item name="android:textColor>@labelColor</item>
</style>
<style name="buttonStyle">
<item name="android:textcolor">@buttonColor</item>
<item name="android:background">@buttonBg</item>
</style>
Я знаю, что этот синтаксис неправильный, но какой может быть правильный синтаксис? По сути, я хочу создать наборы атрибутов (цвет, фон, пару других вещей) и выбирать их в зависимости от темы.
2 ответа
Для работы с темами и стилями в Android необходимо:
Определите одну или несколько тем в файле themes.xml и задайте для них определения своих стилей.
Определите пользовательские атрибуты, или пользовательские стили, в attrs.xml.
Опишите значения ваших пользовательских стилей в файле styles.xml.
В файлах макета присвойте своим представлениям атрибут style, в качестве значений которого используется имя собственного стиля.
Установите тему вашего приложения или действия в AndroidManifest.xml или в onCreate(). Это делается путем вызова setTheme() в методе onCreate () действия перед любым вызовом setContentView().
Чтобы сменить тему, вам просто нужно перезапустить свою деятельность.
Я бы посоветовал вам взглянуть на этот учебник, в котором рассказывается обо всем, что программист хочет поработать над темами для Android (цвет текста, форматирование текста, отображение списка состояний и т. Д.)
Перейдите по этой ссылке...
http://rameshandroidworld.wordpress.com/2012/04/18/213/
Для загрузки демоверсии перейдите по этой ссылке.