当前位置: 首页 > 知识库问答 >
问题:

如何以编程方式检测Android设备是否处于黑暗模式?

赵晨
2023-03-14

我正试图为我的Android应用程序支持Android Q Dark主题,但我不知道如何根据我目前所在的主题导入不同的资产。

Im使用官方的DayNight主题来制作dark/light版本和drawables非常容易,只需指向XML,它将根据启用的内容从values或values-night中选择正确的值。

val inputStream = if(darkIsEnabled) { 
                    assets.open("priceTag_dark.png")
                  } else {
                    assets.open("priceTag_light.png")
                  }

共有1个答案

齐高寒
2023-03-14

好的,终于找到了我要找的解决办法。正如@deepak-s-gavkar指出的,给我们提供配置信息的参数。因此,经过一小段搜索,我找到了这篇文章,它给出了一个非常适合我需要的示例方法:

fun isDarkTheme(activity: Activity): Boolean {
        return activity.resources.configuration.uiMode and
                Configuration.UI_MODE_NIGHT_MASK == Configuration.UI_MODE_NIGHT_YES
    }
 类似资料:
  • 我想检查一个android设备是否支持DLNA,是否有办法找到它,我在开发者网站上尝试过,但我找不到,

  • 从Android10开始,你可以在黑暗模式和默认灯光模式之间切换。我还没有做任何更深入的研究,因为这是一个新的话题。暗模式的颜色切换是由操作系统自动的,还是有任何方法告诉我的应用程序切换不同的应用程序主题,如果暗模式是打开的?此外,黑暗模式也可能出现在一些Android 9设备上。 因为我使用自定义参数创建了自定义深色主题,并在资源中为每种颜色设置了深色(在中使用自定义属性,并在的主题中为它们应用

  • 问题内容: 我正在编写一个非常简单的bash脚本,以快速检查我的容器仍在构建并正确启动,并且其中的应用程序能够响应请求。 有时会失败,例如因为我尝试将容器绑定到的端口已分配。但是当发生这种情况时,退出代码仍为0,因此我无法使用退出代码。如何以编程方式检查容器是否已正确启动? 我正在考虑的解决方案是: 解析输出中的错误 查看容器是否正在运行 但是这些似乎都有些过分和丑陋。我是否缺少更好的方法来检查是

  • 我正在编写一个非常简单的bash脚本,以快速检查我的容器是否仍然正确构建和启动,以及里面的应用程序是否响应请求。 有时会失败,例如,因为我试图将容器绑定到的端口已经分配。但是当这种情况发生时,的退出代码仍然是0,所以我不能使用退出代码。如何以编程方式检查容器是否正确启动? null

  • 在 macOS 10.14 Mojave中, Apple 为所有 macOS 电脑引入了一个全新的 系统级黑暗模式。 If your app does have a dark mode, you can make your Electron app follow the system-wide dark mode setting. In macOS 10.15 Catalina, Apple in

  • 如何在代码中检测到我处于发布模式或调试模式?