我们可以为应用程序图标提供Android暗模式支持吗?

时间:2019-11-05 06:06:56

标签: android android-layout android-theme android-darkmode

我正在为我的应用尝试Android 10的黑暗模式主题支持。 除了应用启动器图标,我还可以在黑暗模式下使用所有其他功能。

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

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

我知道每天/夜晚主题更改中都没有提及应用图标更改。

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

谢谢。

6 个答案:

答案 0 :(得分:1)

否,该应用程序图标不支持暗模式。

答案 1 :(得分:0)

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

  

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

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

?android:attr/textColorPrimary这是一种通用的文本颜色。浅色主题为近黑色,深色主题为近白。它包含一个禁用状态。

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

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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

<!-- 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手机(使用Google启动器)上的Android 11上进行了测试。

还有其他人吗?

答案 4 :(得分:0)

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

  1. 创建一个名为values-night的单独资源文件夹
  2. 在values-night文件夹内定义您的夜间主题(例如theme.xml)
  3. 在theme.xml的“深色”模式下定义所有想要的颜色
  4. 现在,在图标可绘制对象内部定义图标着色属性,如下所示-
  5. <vector android:height="24dp" android:tint="?attr/colorPrimaryDark" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp"
  6. 使用上述代码,图标的颜色将根据项目中“暗和亮”模式主题中定义的颜色而改变

图片:

  1. res文件夹值-夜间

    res folder values-night

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

    define your Dark mode theme

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

    change icon tint attribute of your Icons

  4. 灯光模式

    light mode

  5. 黑暗模式

    Dark mode

答案 5 :(得分:0)

尝试在您的源代码中添加 mipmap-anydpi-v26mipmap-night-anydpi-v26 图标。我试图添加但有点问题。 I 理论图标支持深色主题 XD Here is an example