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

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

最好的方法是什么?我找到了 ColorFilter 等API,但不确定如何在整个应用程序中应用这些API。

最佳答案

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

即,为构成布局的各种 View 定义两组样式-一组用于夜间模式,一组用于白天模式。在您的 Activity 中,这将成为在每个 View 上调用setStyle()在昼夜之间进行切换的一种情况。

针对您的样式提出明智的命名约定和育儿计划,会使您的生活变得更加轻松。例如MyText.LargeMyText.Large.Night

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

10-07 13:12
查看更多