我正在创建一个供飞行员使用的应用程序。它主要使用TextView
,EditText
,Button
等。换句话说,图形量很大。
在夜间使用时,我希望用户能够切换到“夜间模式”,其中屏幕上的所有内容均为红色和黑色……就像Google Sky Map应用程序一样。 (这对于飞行员来说很重要,因为红色不会像其他颜色那样破坏眼睛的自然夜视适应性。)
最好的方法是什么?我找到了 ColorFilter
等API,但不确定如何在整个应用程序中应用这些API。
最佳答案
如果您只是在谈论更改布局中各种 View 的颜色而不是更改布局本身的结构,那么我建议您仅使用样式即可。
即,为构成布局的各种 View 定义两组样式-一组用于夜间模式,一组用于白天模式。在您的 Activity 中,这将成为在每个 View 上调用setStyle()
在昼夜之间进行切换的一种情况。
针对您的样式提出明智的命名约定和育儿计划,会使您的生活变得更加轻松。例如MyText.Large
和MyText.Large.Night
。
Android developer doc on Themes and Style是一个很好的起点。