本人是初级安卓开发者。
平时都是用小米6开发,最近在写一个带有深色模式的APP。
mipmap放白色的图片资源,mipmap-night放暗色的图片。
运行后,发现在小米6手机上运行正常。但是运行在小米11效果居然。。。。
殊不知使用Context.getColor(R.xxx.xxxxxx)方法获取的颜色也在小米11深色模式下发生了频闪,我以为是MIUI的BUG然后进入另一个界面,我惊了。按键全部是白色模式下,没有发生变化。
好奇的我拿同事的华为,VIVO,都试了试可以正常变色。怎么小米11就不行了,后来有拿来了一台小米9SE.发生了和小米11同样的没有变化的效果。
经过百般实验发现,发现高版本的MIUI居然不读取mipmap-night这个文件夹。
解决办法来了。
后来我把所有的资源搬到了drawable和drawable-night文件夹下,居然可以正常变色了。。。
我傻了。以前上学我都习惯把图片放drawable,但是工作后直接接手的项目,上一个写代码的人把图片都放在了mipmap的文件夹里,工作了一年的我早早养成了习惯。
后来在谷歌官网查了查。官方建议图片资源和按下松开的xml放在drawable下。mipmap里放APP的图标,没错,只有图标。
至于为什么华为和VIVO都能正常读取mipmap,MIUI不可以那就得问miui的开发工程师了