详细信息:
这个模块是让第三方Launcher的图标也能使用MIUI/Flyme的主题图标。也许在其它第三方AndroidOS上也起作用,如果他们也用同样的方法来处理主题和图标的话。(据测试,在Flyme上也起作用)
以下左图是ApexLauncher,没安装模块只能显示App原始图标,右图为安装了该模块,可以显示MIUI的主题图标
这个模块只干一件事情:Hook"android.content.pm.LauncherActivityInfo.getIcon"方法,把第一个参数(这个参数是intdenisty,意为图标DPI)设为0。然后这个方法就会加载带主题的图标。这应该是一个feature,不是bug,因为MIUI主题里的图标DPI都是固定的,所以如果想通过这个API请求一个指定DPI的图标,那么系统就会尝试直接从App的Resources里读取最相近的图标,因为开发者一般会放入不同DPI的图标。
安装该模块,在Xposed中启用(我只在LSPosed上测试了),并且在作用域中勾上你的Launcher,然后重启还有一个重要的事情是,大部分Launcher都有图标缓存,所以即使你启用了这个模块,但Launcher没有刷新图标缓存,所以还是显示原来的图标。你得想办法去刷新图标缓存,一种最简单的可以尝试的方法是装一个与你的Launcher兼容的第三方图标包,然后切换到这个图标包,再切回“无”或者“系统图标”之类的,让它刷新图标缓存。也可以尝试一些设置比如改变图标大小,图标形状之类的,也可以尝试Android的“清除缓存”功能。但我在ApexLauncher上试了,上述方法都不管用。。。看起来在Apex上只能用备份还原功能来刷新缓存,或者直接清除应用数据,但这样你的桌面布局和设置就没了。。。如果用上面的方法无法刷新缓存,又不想清数据,只能自己想想办法了。
互联网收集,如有侵权请联系741500926@qq.com下架