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

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

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

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

28.05.2015, 18:44. Просмотров 275. Ответов 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
Посмотрите здесь:

Указать цвет текста, подходящий для разных цветовых тем - Программирование Android
Есть напр. 2 темы: Theme.AppCompat - темная Theme.AppCompat.Light - светлая Вот как указать одним стилем что цвет TextView при...

Изменение стилей для элементов showDialog - Программирование Android
Здравствуйте. Как изменить стили элементов showDialog? Есть элементы диалога, в виде кнопок(скрин приложу ниже). Как изменить цвет кнопки...

Разные стили для разных тем - Программирование Android
У кнопок прописан стиль: main.xml: &lt;ImageButton android:id=&quot;@+id/btnSettings&quot; android:src=&quot;@drawable/settings&quot; ...

OnTouch из активити для View - Программирование Android
В активити прописан метод onTouch. Что нужно написать чтобы добавленные View так же вызывали выполнение кода при прикосновении

Что за view используется для меню в OneDrive - Программирование Android
Видели приложение OneDrive от мелкософта для Андроид? Вот там снизу менюшка. Что это за элемент управления? Спасибо.

Как сделать View "не прозрачным" для кликов - Программирование Android
В общем имею много слойный экран, на нижнем - карта, выше - элементы управления и всякие доп поля. Сейчас есть табличка которая...

Как называется View, который представляет из себя "площадку" для размещения контента (на скриншоте) - Программирование Android
Здравствуйте! Пожалуйста, скажите, как называется View на скриншоте. То есть, вот у нас есть пост. И он размещён на белой &quot;площадке&quot;. Как...

Генератор стилей Android приложений - Программирование Android
Есть такие генераторы ? видел для ActionBar есть генератор.. 1) а есть есть более глобальней генераторы ? т.е. для View элементов...

Как в программе использовать все стили из файла стилей? - Программирование Android
есть файл со стилями &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;resources&gt; &lt;style name=&quot;MyTheme&quot;...

Хранение HTML, файлов, картинок, стилей в ресурсах приложения - Программирование Android
Есть некий контент который нужно отобразить в WebView, как можно папку с html и его файлами запехнуть в ресурсы проги, и потом считывать их...


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

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

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