3

我正在为我的应用程序尝试对 Android 10 的深色模式主题支持。除了 App Launcher Icon,我可以在黑暗模式下使用所有其他东西。

作为参考,我使用下面的链接

https://developer.android.com/guide/topics/ui/look-and-feel/darktheme

我知道根据日/夜主题更改没有提到应用程序图标更改。

只是为了确认,需要您的所有输入,才能根据主题从正常到黑暗的变化来更改应用程序图标,反之亦然。

提前致谢。

4

7 回答 7

7

您是否检查过文档中的主题和样式部分?

您的主题和样式应避免使用硬编码颜色或用于浅色主题的图标。您应该改用主题属性(首选)或夜间限定资源。

以下是需要了解的两个最重要的主题属性:

?android:attr/textColorPrimary这是一种通用的文本颜色。它在 Light 主题中接近黑色,在 Dark 主题中接近白色。它包含禁用状态。

?attr/colorControlNormal一种通用的图标颜色。它包含禁用状态。

因此?android:attr/textColorPrimaryand?attr/colorControlNormal将根据主题(黑色 -> 白色和白色 -> 黑色)而变化。我假设我们可以将这些颜色设置为android:tint属性,以实现矢量图标的暗/白主题。缺点是你的图标只需要是黑白的。

于 2019-11-05T06:31:25.570 回答
4

在 Android 中实现图标的暗模式:

  1. 创建名为 values-night 的单独资源文件夹
  2. 在 values-night 文件夹中定义您的夜间主题(例如 theme.xml)
  3. 在 theme.xml 中的深色模式下定义您想要的所有所需颜色
  4. 现在,在你的图标 drawable 中定义 icon tint 属性如下 -
  5. <vector android:height="24dp" android:tint="?attr/colorPrimaryDark" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp"
  6. 使用上面的代码,图标颜色将根据项目中深色和浅色模式主题中定义的颜色而改变

图片:

  1. res 文件夹值-夜

    res 文件夹值-夜

  2. 定义你的黑暗模式主题

    定义你的黑暗模式主题

  3. 更改图标的图标色调属性

    更改图标的图标色调属性

  4. 灯光模式

    灯光模式

  5. 黑暗模式

    黑暗模式

于 2020-12-04T14:48:43.273 回答
1

不,应用程序图标不支持深色模式。

于 2019-11-05T06:12:06.403 回答
1

除了应用图标,其他图片颜色可以修改:

尝试使用

android:drawableTint="@color/black" 

或者

app:tint="@color/black"

[

通过按 ALT+Enter 或使用以下命令添加 xml 导入:

xmlns:app="http://schemas.android.com/apk/res-auto"

]

与您想要的图像。

更新:

或者只是使用:

ivMyImageView.setColorFilter(ActivityCompat.getColor(context, android.R.color.holo_green_light))

PS:(属性drawableTint仅在API 23及更高级别使用)

于 2021-08-19T06:03:33.643 回答
0

我认为有可能,只是启动器不支持显示它。

values-night顺便说一句,我在and中创建了新的颜色资源values,例如:

<!-- values-night/colors.xml -->
<color name="icon_background">#000000</color>
<!-- values/colors.xml -->
<color name="icon_background">#FFFFFF</color>

然后将背景颜色设置为应用程序图标:

<!-- mipmap/ic_launcher.xml -->
...
<background android:drawable="@color/icon_background" />
...
<!-- mipmap/ic_launcher_round.xml -->
...
<background android:drawable="@color/icon_background" />
...

应用程序的图标现在在切换暗模式时会更改...,但仅适用于应用程序切换器(图标显示在窗口顶部),但 lancher 不会更新...我已经在 Pixel 4XL 手机上的 Android 11 上进行了测试(使用 Google Launcher )。

还有谁?

于 2020-12-01T12:35:59.203 回答
0

尝试在源代码中添加mipmap-anydpi-v26&mipmap-night-anydpi-v26图标。我试图添加,但有点错误。我理论图标支持深色主题 XD 这是一个例子

于 2021-03-24T23:10:17.607 回答
0

好吧,您可以使用 ure 资源颜色。添加夜间模式变化(右键单击值,新建 -> 值资源文件,设置文件名“颜色”和限定符“夜间模式”。如果需要,您可以专门进行可绘制的变化。

主要缺点 - 它并不真正稳定。我不知道是不是只有我一个人,但我在模拟器中出现了奇怪的行为(抱歉,现在无法在设备上测试)。安装图标设置为正确模式后,但当您更改为其他图标时,它不会更新。但是,当您尝试使用当前主题变体移动图标时。

于 2019-12-06T07:01:34.003 回答