Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
ViT(Vet@l)
27 / 26 / 2
Регистрация: 13.12.2010
Сообщений: 333
#1

Смена цветовых тем для стилей View - Android

28.05.2015, 18:44. Просмотров 272. Ответов 0

Сейчас в моем приложении одна тема и есть много стилей для разных View. К примеру вот кусок этих стилей.

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!-- styles.xml -->
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light" />
 
<style name="title">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textSize">22sp</item>
    <item name="android:padding">10sp</item>
    <item name="android:gravity">center_horizontal</item>
    <item name="android:textColor">@color/black</item>
    <item name="android:background">@color/background_all_screen</item>
</style>
 
<style name="label">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textColor">@color/black</item>
    <item name="android:textSize">18sp</item>
    <item name="android:layout_alignParentLeft">true</item>
    <item name="android:layout_marginLeft">5dp</item>
</style>
 
<style name="button">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_margin">2dp</item>
    <item name="android:textSize">18sp</item>
    <item name="android:textColor">@color/white</item>
    <item name="android:background">@color/blue</item>
</style>
Я хочу добавить несколько цветовых тем в приложение. Меняя одну тему на другую - будет меняться только цвет кнопок, текста и т.п. То есть мне необходимо менять цвет элемента в зависимости от выбранной темы.
Для стандартных View это делать довольно просто .

XML
1
2
3
4
5
6
7
8
9
10
11
<style name="AppTheme" parent="Theme.AppCompat.Light">
    <!-- original theme attributes -->
    ...
    <item name="colorPrimary">@color/colorPrimaryInverseWhite</item>
</style>
 
<style name="AppTheme.Dark" parent="Theme.AppCompat">
    <!-- alternative theme attributes -->
    ...
     <item name="colorPrimary">@color/colorPrimaryInverseBlack</item>
</style>
Но как быть, если для элементов используются свои стили, как в моем случае?

Пробовал так, но не работает

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<style name="Button.MyButton" parent="android:style/Widget.Button">
  <item name="android:background">@drawable/shape</item>
</style>
 
 <style name ="Button.MyButton.Theme1">
     <item name="android:textColor">#000000</item>
  </style>
 
 <style name ="Button.MyButton.Theme2">
     <item name="android:textColor">#FFFFFF</item>
  </style>
 
 <Button
     android:id="@+id/save_button" 
     android:layout_width="0px" 
     style="@style/Button.MyButton"
     android:layout_weight="1"
     android:layout_height="wrap_content"
     android:text="@string/save"/>
Используются только атрибуты указанные в Button.MyButton, а цвет текста из Button.MyButton.Theme1 и Button.MyButton.Theme2 игнорируется

Добавлено через 34 минуты
Пожалуй вот и ответ
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2015, 18:44     Смена цветовых тем для стилей View
Посмотрите здесь:

Что за view используется для меню в OneDrive Android
Генератор стилей Android приложений Android
Android Указать цвет текста, подходящий для разных цветовых тем
Кнопка без стилей на новой активности Android
OnTouch из активити для View Android
Смена языка для своего приложения Android
Программно задать цвет фона для View Android
Android Разные стили для разных тем
Генерация цветовых экранов Android
Как называется View, который представляет из себя "площадку" для размещения контента (на скриншоте) Android
Android Изменение стилей для элементов showDialog
Android Как сделать View "не прозрачным" для кликов

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru