java - 我想为我的 Android 应用程序创建一个红色的 "night mode"

标签 java android colors

我正在创建一个供飞行员使用的应用程序。它主要使用 TextViewEditTextButton 等。换句话说,图形不是很重。

在晚上使用时,我希望用户能够切换到“夜间模式”,在这种模式下,屏幕上的所有内容都是红色和黑色的……就像 Google Sky Map 应用程序一样。 (这对飞行员很重要,因为红色不会像其他颜色那样破坏眼睛的自然夜视适应能力。)

执行此操作的最佳方法是什么?我发现像 ColorFilter 这样的 API等,但我不确定如何在整个应用程序范围内应用这些。

最佳答案

如果您只是在谈论更改布局中各种 View 的颜色而不是布局本身的结构,那么我建议您只需使用样式即可。

即为构成布局的各种 View 定义两组样式 - 一组用于夜间模式,一组用于白天模式。在您的 Activity 中,这变成了对每个 View 调用 setStyle() 以在白天和黑夜之间切换的情况。

为您的样式制定合理的命名约定和亲子关系方案将使您的生活变得更加轻松。例如MyText.LargeMyText.Large.Night

Android developer doc on Themes and Style是一个很好的起点。

关于java - 我想为我的 Android 应用程序创建一个红色的 "night mode",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7356999/

相关文章:

java - 如何处理具有相同 catch block 的解析数字?

java - 访问名称编码未知的文件

java - 为什么 .jar 文件中的 .classes 文件的名称看起来很奇怪?

java - 我可以执行类似语言命令的字符串吗?

android - ListView 将项目添加到底部(android)

java - android 开发中的人工重力/物理学——从哪里开始?

C#,如何在 RGB 中生成仅与 CMYK 兼容的颜色

android - TextView 中每一行的不同颜色

java - SonarQube - 帮助创建新的语言插件

colors - 在计算颜色之间的欧氏距离时,sRGB 比 L*a*b* 差多少?