android 换肤之二(apk非安装模式)
2015-08-14 00:00
411 查看
摘要: 前篇讲的是apk安装方式的换肤,这篇是说不用安装apk实现换肤
由于公司的项目第一版皮肤需要内置,如果用皮肤apk随主app一起安装的话,会有2个提示框,体验不太好,所以使用了这种不用安装的方式。皮肤apk只是为了方便管理资源。
首先,我把皮肤apk打包好后,放到主app中的assets目录下
之后通过
path是皮肤apk在assets的路径
获取到Resources后,就可以按上一篇介绍的获取ID方式去获取皮肤apk中的资源
android 换肤之一(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安装模式)
相关文章推荐
- android-解决win10下无法打开genymotion
- 学习Android中的Parcelable接口
- Android
- Android笔记-4-实现登陆页面并跳转和简单的注册页面
- Android Support V4, V7, V13的作用与用法
- android入门(一) 搭建开发环境
- RecyclerView的使用
- Android中Activity, View,Window,DecorView之间的关系
- Android源码大放送(实战开发必备)
- Android ViewPager无限滑动(支持左右,存在传入数量限制)方式二
- Android编程之LocalBroadcastManager源码详解
- 使用ViewPager实现可以自动切换的广告控件
- 解析Android下assert与raw的区别
- Android dx工具错误 解决
- android在framework层增加自己的service仿照GPS
- android原创好文收集
- 【攻克Android (35)】EventBus事件总线分发库
- 调试FSL Android GPS学习select和epoll的用法
- Android Api Demos登顶之路(三十三)Alert Dialogs
- Material Design文档翻译(材料设计)