我在夜间模式改变时改变背景。
我有/ values和/ values-night文件夹,其中包含具有不同值的“colors.xml”。 `
<color name="grey1">#ebebeb</color>
<color name="grey2">#c7c7c7</color>
<color name="grey3">#999999</color>
<color name="hover1">#8bb065</color>
<color name="red1">#ba0000</color>
<color name="red2">#ff0000</color>
<color name="green1">#336600</color>
<color name="text1">#000000</color>
和其他是
<color name="grey1">#999999</color>
<color name="grey2">#333333</color>
<color name="grey3">#000000</color>
<color name="hover1">#8bb065</color>
<color name="red1">#ba0000</color>
<color name="red2">#ff0000</color>
<color name="green1">#336600</color>
<color name="text1">#ffffff</color>
这些颜色在背景“activity_main_bg2.xml”的图层列表中使用:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle" >
<solid android:color="@color/grey1" />
</shape>
</item>
<item
android:bottom="1dp"
android:left="1dp"
android:right="1dp">
<shape android:shape="rectangle" >
<solid android:color="@color/grey2" />
</shape>
</item>
</layer-list>
我的活动包含片段:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world_dark"
android:background="@drawable/activity_main_bg2" />
当我从昼夜改变时间或背景中的背景颜色不会改变。但是,如果我使用
android:background="@color/grey1"
万事如意。
如何解决这个问题?这是机器人的错误吗?
答案 0 :(得分:3)
请试试这个:
为TextView添加两种样式:
<style name="textViewStyle">
<item name="android:background">@drawable/activity_main_bg2</item>
</style>
将您的布局更新为:
<TextView
style="@style/textViewStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world_dark" />
此解决方案的属性颜色应取决于日/夜模式。