You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

应用开启深色模式时ImageView内图片颜色发生反转如何解决?

问题原因

Android 12及更高版本系统内置了深色模式下自动适配图片的特性,对于没有明确禁用强制深色适配的图片资源,系统会默认对内容颜色做反转处理,目的是让浅色背景下的图标类内容在深色主题下也能清晰展示,黑白颜色反转就是该特性触发后的效果。

修复方案
  • 方案1:针对单个ImageView禁用反转(优先推荐,改动最小)
    在对应ImageView的XML布局代码中添加属性:android:forceDarkAllowed="false",即可明确告知系统不要对该ImageView内的图片内容执行强制色值反转。
  • 方案2:针对单个页面禁用反转
    如果需要整个页面的所有图片都不触发反转,可以在对应Activity的onCreate方法中添加如下代码:
// Java 写法
getWindow().setForceDarkAllowed(false);
// Kotlin 写法
window.setForceDarkAllowed(false)
  • 方案3:全局禁用图片反转
    如果整个App都不需要系统自动反转图片,可以在App全局主题的style配置中添加如下配置:
<item name="android:forceDarkAllowed">false</item>

注意该配置会全局生效,建议确认所有场景都不需要系统自动适配后再使用。

  • 方案4:矢量图专用解决方案
    如果你的图片是矢量图(VectorDrawable),也可以直接给矢量图根节点指定固定的tint色值,或者在代码中根据深浅模式分别设置对应色值,避免系统自动修改颜色。

效果对比

浅色模式下正常显示效果:
浅色模式图片效果
深色模式下异常显示效果:
深色模式图片效果

内容的提问来源于stack exchange,提问作者theyash15

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:45:03