面试题答案
一键面试颜色资源切换
- 创建不同模式颜色资源文件:
- 在
res/values
目录下创建colors.xml
用于存放亮色模式颜色定义,例如:
<resources> <color name="primary_color">#FF0000</color> <color name="background_color">#FFFFFF</color> </resources>
- 在
res/values-night
目录下创建同名colors.xml
用于暗黑模式颜色定义,例如:
<resources> <color name="primary_color">#00FF00</color> <color name="background_color">#000000</color> </resources>
- 在
- 在代码中获取颜色:
在Kotlin代码中,通过
context.getColor(R.color.color_name)
方法获取颜色,系统会根据当前模式自动加载对应的颜色资源。例如:val primaryColor = context.getColor(R.color.primary_color)
布局资源切换
- 创建不同模式布局资源文件:
- 常规布局放在
res/layout
目录下,例如activity_main.xml
。 - 暗黑模式专属布局放在
res/layout-night
目录下,同样命名为activity_main.xml
。在暗黑模式布局中,可以调整视图的颜色、间距等视觉元素以适配暗黑风格。比如,对于一个TextView,亮色模式下可能是黑色文字,暗黑模式下就是白色文字。
- 常规布局放在
- 加载布局:
在Kotlin代码中,使用
setContentView(R.layout.activity_main)
加载布局时,系统会根据当前系统的暗黑模式设置,自动加载对应的布局文件。如果处于暗黑模式,就加载res/layout - night
目录下的布局;否则,加载res/layout
目录下的布局。