Как указать Android индивидуальные цветовые ресурсы: день / ночь / высокая контрастность - PullRequest
0 голосов
/ 09 января 2019

Android поддерживает дневной / ночной режим с

../values/colors.xml и

../values-night/colors.xml.

Если я хочу добавить еще одну цветовую папку, скажем, для высококонтрастных цветов

(../values-highconst/colors.xml), есть ли способ добавить дополнительные цветовые папки и сделать так, чтобы он выбирал цвета в этой дополнительной папке в соответствии с определенным условием?

Я думал сделать это с помощью standard_theme.xml, high_contrast_theme.xml, и когда мы пытаемся также добавить дневной / ночной режим к каждой теме, становится сложнее управлять и поддерживать несколько разработчиков, работающих над проектом. Как нам этого добиться?

1 Ответ

0 голосов
/ 09 января 2019

вы должны определить attrs.xml как ниже ..res / values ​​/ attrs.xml

<?xml version="1.0" encoding="utf-8"?>
  <resources>
    <declare-styleable name="tm">
     <attr name="background_color" format="color" />
     <attr name="card_background" format="color" />
     <attr name="text_color" format="color" />
     <attr name="tint_color" format="color" />
     <attr name="button_color" format="color" />
     <attr name="button_text_color" format="color" />
     <attr name="icon_color" format="color" />
     <attr name="toolbar_color" format="color" />
     <attr name="toolbar_content_color" format="color" />
     <attr name="edit_text_background" format="color" />
     <attr name="edit_text_color" format="color" />
     <attr name="edit_text_hint" format="color" />
 </declare-styleable>
</resources>

, а затем определить стили в ../res/values/styles как показано ниже

 <!-- Base application theme. -->
<!-- Base light/day theme. -->
<style name="darkTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="background_color">#fcffe3</item>
    <item name="card_background">#2d2e30</item>
    <item name="text_color">#999797</item>
    <item name="toolbar_color">@color/black</item>
    <item name="toolbar_content_color">@color/yellowText</item>
    <item name="tint_color">@color/colorAccent</item>
    <item name="button_color">@color/colorPrimary</item>
    <item name="model_item_color">@color/colorPrimary</item>
    <item name="icon_color">@color/colorAccent</item>
    <item name="text_icon_dr">@color/black</item>
    <item name="button_text_color">@color/black</item>
    <item name="hint_color">#6e6f70</item>
    <item name="btn_color">@color/yellowButton</item>
    <item name="edit_text_background">@color/white</item>
    <item name="edit_text_color">@color/black</item>
    <item name="edit_text_hint">@color/brown_400</item>
    <item name="text_bg_white">@color/black</item>
</style>

<!-- Base dark/night theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">#9c2917</item>
    <item name="background_color">@color/colorPrimary</item>
    <item name="card_background">#d3d6d7</item>
    <item name="text_color">@color/white</item>
    <item name="toolbar_color">@color/white</item>
    <item name="toolbar_content_color">@color/yellowText</item>
    <item name="tint_color">#d1d100</item>
    <item name="button_color">@color/colorPrimary</item>
    <item name="model_item_color">@color/colorPrimary</item>
    <item name="icon_color">#331611</item>
    <item name="text_icon_dr">@color/colorAccent</item>
    <item name="button_text_color">@color/black</item>
    <item name="hint_color">#9ef9f9f9</item>
    <item name="edit_text_background">@color/white</item>
    <item name="edit_text_color">@color/black</item>
    <item name="edit_text_hint">@color/brown_400</item>
    <item name="text_bg_white">@color/black</item>
    <item name="btn_color">@color/yellowButton</item>
</style>

это работа для меня для мульти темы Надеюсь быть полезным для вас

...