- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
背景
在最近的 Android 版本中,自 Android 8.1 以来,操作系统对主题的支持越来越多。更具体地说是黑暗主题。
问题
尽管从用户的角度来看有很多关于暗模式的讨论,但几乎没有为开发人员编写的内容。
我发现了什么
从 Android 8.1 开始,Google 提供了某种深色主题。如果用户选择深色壁纸,操作系统的某些 UI 组件会变黑(文章 here)。
此外,如果您开发了一个动态壁纸应用程序,您可以告诉操作系统它有哪些颜色(3 种颜色),这也会影响操作系统的颜色(至少在基于 Vanilla 的 ROM 和 Google 设备上)。这就是为什么我什至制作了一个应用程序,它可以让你拥有任何壁纸,同时仍然可以选择颜色 (here)。这是通过调用 notifyColorsChanged 来完成的。然后使用 onComputeColors 提供它们
从 Android 9.0 开始,现在可以选择要拥有的主题:浅色、深色或自动(基于壁纸):
而现在在临近的 Android Q 上,似乎又走得更远了,但还不清楚到什么程度。不知何故,一个名为“Smart Launcher”的启动器骑在上面,提供直接使用主题(文章here)。因此,如果您启用暗模式(手动,如 here 所写),您将获得应用程序的设置屏幕,如下所示:
到目前为止,我唯一发现的是上述文章,并且我正在关注此类主题。
我也知道如何请求操作系统使用动态壁纸更改颜色,但这似乎在 Android Q 上发生了变化,至少根据我在尝试时看到的情况(我认为它更多基于时间,但不确定)。
问题
最佳答案
Google 刚刚在 I/O 2019 结束时发布了关于黑暗主题的文档,here .
为了管理黑暗主题,您必须首先使用最新版本的 Material 组件库:"com.google.android.material:material:1.1.0-alpha06"
.
根据系统主题更改应用主题
应用程序根据系统切换到深色主题,只需要一个主题。为此,主题必须有 Theme.MaterialComponents.DayNight 作为父级。
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
...
</style>
switch (getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) {
case Configuration.UI_MODE_NIGHT_YES:
…
break;
case Configuration.UI_MODE_NIGHT_NO:
…
break;
}
关于android - 是否有 API 可以检测操作系统正在使用哪个主题 - 深色或浅色(或其他)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55787035/
我正在我的 playground Android 应用中实现一个深色主题,并且正在努力将操作栏文本颜色设置为白色。 以下是我的风格和颜色。操作栏的背景沿用了colorPrimary,很棒。然而,两种颜
我正在尝试创建一个 HTML 页面,单击按钮时,主题会从深色变为浅色。 我遇到的问题是菜单图标。如果您更改为深色主题,然后打开和关闭菜单,则浅色和深色主题菜单图标显示或弹出菜单不会在其中显示任何内容,
我正在尝试找到正确的颜色。例如,如果我有深绿色,那么我需要浅绿色,或者如果我有浅绿色,那么我需要深绿色。我有一个代码可以告诉我颜色是深色还是浅色。 function calcBrightness(re
比如我发现即使不加粗体的Raleway字体,我也可以设置fontWeight: FontWeight.bold并且可以正常工作。那么为什么我们要添加粗体和黑色版本的字体呢? 最佳答案 当您将 font
我在来自 here 的游戏中使用 CCBlade这会在滑动时产生 Blade 效果,在黑屏上效果很好。但是当我尝试在较浅的彩色屏幕上使用它时遇到了问题,我的游戏有淡蓝色的天空颜色。我认为这与 CCBl
我怎样才能以某种方式显示在 Firebug 中显示的不可见标签的样式?我不知道为什么它们是苍白/看不见的,我需要找出原因。 最佳答案 Firebug 淡出那些在浏览器中不可见或隐藏的元素。根据此处显示
所以在 Angular Material 2 中,我设置了主题 $store-primary: mat-palette($mat-storecast); $store-accent: mat-pal
在 macOS 10.14 Mojave 中,创建自动绘制明暗版本的 NSImage 实例的唯一方法是通过 Assets 目录和 +[NSImage imageNamed:] .但是,我需要在运行时创
我在 createMuiTheme 中设置了调色板类型:深色,并将背景颜色更改为深色,这很好。但文本颜色保持黑色。难道不应该采用更浅的颜色吗? CodeSandbox 链接:https://codes
我的应用支持 iOS 13 深色模式,并为用户提供了匹配系统外观或强制应用始终使用深色模式或浅色模式的选项,无论系统设置如何。 该应用还允许在用户按下 UILabel 时显示上下文菜单。但是,当使用
如何在应用程序中切换主题?如果我覆盖默认样式怎么办?我也可以分别为明暗主题定义不同的样式吗?为什么图标 colos 会改变 - 即如果主题设置为深色,图标的黑色背景会变成白色。如果我将应用程序栏的背景
Link: https://50.62.213.246/gktest/ 搜索栏中的占位符文本和输入文本不会响应font-weight: 300;如果我尝试 font-weight: 700;文字是粗体
我是一名优秀的程序员,十分优秀!