【问题标题】:How to change a layout background image depending on Dark/Light theme?如何根据深色/浅色主题更改布局背景图像?
【发布时间】:2021-12-30 14:04:29
【问题描述】:

我有两张图片。我想这样做:当用户打开具有 Light 主题的应用程序时 - 第一个图像被用作布局的背景。当用户使用深色主题打开应用时 - 第二张图片将用作布局的背景。

要解决这个文本颜色问题,我们可以使用 styles.xmlcolors-day/night.xml 和一行代码:<item name="android:textColor">@color/textColor</item>

我已尝试对图像和两个 样式 文件进行相同的处理:<item name="android:background">@drawable/day</item>

但此功能将背景应用于屏幕上的每个元素,而不仅仅是主布局。

我知道,我可以通过使用 if 语句和 layout.setBackgroundResource(R.drawable.day/night); 更改背景以编程方式完成此操作

但也许它可以像文本颜色那样使用 XML 来完成?

【问题讨论】:

    标签: java android xml android-layout android-night-mode


    【解决方案1】:

    要解决文本颜色的这个问题,我们可以使用 styles.xml 和 colors-day/night.xml 和一行代码:@color/textColor

    你需要做同样的事情,但不是res/values/colors.xml,它应该在drawable上完成res/drawable/day

    因此,您将在 res 目录中有一个 drawabledrawable-night 文件夹,每个文件夹都应该有一个具有相同名称的 day 图像的唯一版本。

    它们应该看起来像在 Android Studio(Android 预览版)中:

    并且通常使用属性name="android:background">@drawable/day</item>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 2021-11-29
      • 1970-01-01
      • 2013-12-18
      • 2023-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多