我正在创建一个供飞行员使用的应用程序。它主要使用 TextView
、EditText
、Button
等。换句话说,图形不是很重。
在晚上使用时,我希望用户能够切换到“夜间模式”,在这种模式下,屏幕上的所有内容都是红色和黑色的……就像 Google Sky Map 应用程序一样。 (这对飞行员很重要,因为红色不会像其他颜色那样破坏眼睛的自然夜视适应能力。)
执行此操作的最佳方法是什么?我发现像 ColorFilter
这样的 API等,但我不确定如何在整个应用程序范围内应用这些。
最佳答案
如果您只是在谈论更改布局中各种 View 的颜色而不是布局本身的结构,那么我建议您只需使用样式即可。
即为构成布局的各种 View 定义两组样式 - 一组用于夜间模式,一组用于白天模式。在您的 Activity 中,这变成了对每个 View 调用 setStyle()
以在白天和黑夜之间切换的情况。
为您的样式制定合理的命名约定和亲子关系方案将使您的生活变得更加轻松。例如MyText.Large
与 MyText.Large.Night
。
关于java - 我想为我的 Android 应用程序创建一个红色的 "night mode",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7356999/