Android应用程序的日/夜主题

我有一个应用程序,我需要实现日/夜主题.不幸的是,通过使用样式没有简单的方法来制作主题,我需要能够更新:布局背景,按钮选择器,文本颜色,文本大小,图像,图标,动画.

从我看到我有2个选项:

>为night / day提供不同的xml布局文件,例如home_day.xml / home_night.xml.应用程序中有大约30个屏幕,因此最终将有60 xml布局.在onCreate上的activity / fragment,基于当前小时,我可以setContentView.这会添加更多xml文件,但可以避免在活动中添加更多代码
>只有一个日/夜的布局和活动的onCreate findviewById为我想要主题的每个项目并根据当前日/夜更新他的属性.这可以为许多视图生成大量额外代码,查找视图和应用属性.

我的目标是2.但我愿意接受你的任何建议.那么,你会选择什么?为什么?

最佳答案
实际上,您似乎也可以使用主题来描述自定义drawable.看一下:How to switch between night-mode and day-mode themes on Android?.您可以使用样式块创建主题,然后在xml布局中使用?attr指定主题中的内容.然后你应该能够在下一个活动上调用setTheme(R.styles.DAY_THEME)并且应该更新所有内容.

转载注明原文:Android应用程序的日/夜主题 - 代码日志