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 необходимо:

  1. Определите одну или несколько тем в файле themes.xml и задайте для них определения своих стилей.

  2. Определите пользовательские атрибуты, или пользовательские стили, в attrs.xml.

  3. Опишите значения ваших пользовательских стилей в файле styles.xml.

  4. В файлах макета присвойте своим представлениям атрибут style, в качестве значений которого используется имя собственного стиля.

  5. Установите тему вашего приложения или действия в AndroidManifest.xml или в onCreate(). Это делается путем вызова setTheme() в методе onCreate () действия перед любым вызовом setContentView().

  6. Чтобы сменить тему, вам просто нужно перезапустить свою деятельность.

Я бы посоветовал вам взглянуть на этот учебник, в котором рассказывается обо всем, что программист хочет поработать над темами для Android (цвет текста, форматирование текста, отображение списка состояний и т. Д.)

Перейдите по этой ссылке...

http://rameshandroidworld.wordpress.com/2012/04/18/213/

Для загрузки демоверсии перейдите по этой ссылке.

https://www.box.net/shared/666956a67206c183a863

Другие вопросы по тегам