如何修改Android应用在深色模式下的页面显示颜色?
问题:Android应用深色模式显示异常如何修改配色
各位开发者大家好。
我使用Android Studio开发了一款Android应用,但最初仅适配了浅色(light)模式的布局主题,浅色模式下的页面效果如下:
现在当我将手机切换到深色(dark)模式时,页面显示出现异常,效果如下:
请问我该如何修改应用在深色模式下的显示颜色?
解答
你可以根据需求选择以下任意一种方案解决问题:
方案一:强制关闭应用深色模式(快速修复异常,无需适配)
如果你的应用不需要支持深色模式,直接禁止系统强制给应用套深色滤镜即可:
- 打开
res/values/themes.xml(旧版Android项目对应styles.xml),在你的应用主主题节点下添加一行配置:
配置完成后应用会固定保持浅色模式显示,不会因为系统切换深色模式出现样式异常。<item name="android:forceDarkAllowed">false</item>
方案二:适配系统深色模式
如果需要应用跟随系统自动切换深浅色主题,按以下步骤操作:
- 调整应用基础主题
打开主题配置文件,将应用主主题的父主题修改为DayNight系列,示例:<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar"> <!-- 原有其他主题配置保持不变 --> </style> - 创建深色模式专属颜色配置
- 在
res目录下新建名为values-night的资源文件夹 - 将
res/values/colors.xml复制到values-night目录中 - 修改
values-night/colors.xml里的颜色值适配深色场景:比如将主背景色改为深灰#121212,一级文字颜色改为浅灰#F5F5F5,二级文字颜色改为#A0A0A0,和浅色模式的颜色资源一一对应即可
- 在
- 检查布局代码,确保所有颜色都引用
@color/xxx资源,不要写硬编码的十六进制色值,这样系统切换深浅模式时会自动加载对应资源文件夹下的颜色配置。
内容的提问来源于stack exchange,提问作者Alcachofra
相关产品推荐
相关产品推荐

