您的位置:首页 > 移动开发 > Android开发

android 换肤之二(apk非安装模式)

2015-08-14 00:00 411 查看
摘要: 前篇讲的是apk安装方式的换肤,这篇是说不用安装apk实现换肤

由于公司的项目第一版皮肤需要内置,如果用皮肤apk随主app一起安装的话,会有2个提示框,体验不太好,所以使用了这种不用安装的方式。皮肤apk只是为了方便管理资源。

首先,我把皮肤apk打包好后,放到主app中的assets目录下

之后通过

private Resources getUninstallApkResources(String path) {
try {
Class<?> class_AssetManager = Class.forName("android.content.res.AssetManager");
Object assetMag = class_AssetManager.newInstance();
Method method_addAssetPath = class_AssetManager
.getDeclaredMethod("addAssetPath", String.class);
method_addAssetPath.invoke(assetMag, path);
Constructor<?> constructor_Resources = Resources.class
.getConstructor(class_AssetManager, res.getDisplayMetrics()
.getClass(), res.getConfiguration().getClass());
res = (Resources) constructor_Resources.newInstance(assetMag,
res.getDisplayMetrics(), res.getConfiguration());
} catch (Exception e) {
e.printStackTrace();
}
return res;
}

path是皮肤apk在assets的路径

获取到Resources后,就可以按上一篇介绍的获取ID方式去获取皮肤apk中的资源

android 换肤之一(apk安装模式)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: