android - Android - 自定义通知的暗模式
问题描述
我有一个带有自定义 XML 布局的通知,因此我不能使用默认样式,如 MessagingStyle 或 MediaStyle。
问题是,即使开启了暗模式,通知也会保持白色,这很烦人。
我检查了 MessagingStyle 和 MediaStyle 的源代码,似乎暗模式背景颜色是由状态栏本身设置的,使用这些样式时,它们无法从通知对象本身中提取(即使使用反射也不行)
是否有可能以某种方式检索背景颜色?
我认为对颜色进行硬编码不是一个好习惯,在不同的智能手机上可能会有所不同......
编辑:即使设置正确的颜色也无济于事......通知在锁屏中很亮,在通知栏中很暗......
解决方案
这似乎是三星问题:
on Stock Android 通知是白色的,即使使用暗模式,所以这里无事可做。
在三星设备上,通知也是黑暗的,但在锁屏中仍然是白色的,所以如果你设置背景颜色,它在锁屏或通知栏中都是“错误的”(你总是可以在锁定/解锁时显示/取消不同的通知状态,什么不是一个很好的解决方案)
无论如何,有一种方法可以为三星设备获取正确的背景颜色:在https://stackoverflow.com/a/7320604/1988378上解释了如何获取默认文本颜色。三星反转背景,使深色模式下的背景是浅色模式下的文字颜色。
推荐阅读
- html - 我如何将我的图标图像放置在行和列中而不必使用表格
- ssl - 如何在 JAX-RS 客户端上以编程方式覆盖密码/协议
- javascript - 修改输入格式后如何提交html表单?
- excel - Excel 定义的名称不会出现在超链接定义的名称中
- python-3.x - “按回车退出”不起作用
- spring - 如何使用双向多对多映射引发以下错误无法添加或更新子行:外键约束失败
- ruby-on-rails - Rails 自定义 group_by
- python - Python/Matplotlib - 表示平均值的颜色条
- c# - Async/Await 在 Windows 窗体应用程序中工作,但它不应该
- google-apps-script - 仅在对特定工作表进行编辑时运行 OnEdit