使用自定义主题或者皮肤,可以将相关配置(颜色、大小等等)放在一个新的apk压缩文件中,目录结构保持一致,该apk文件放在任意可以访问到的目录即可,类似/system/framework/framework-res.apk,可根据软件的需要动态的加载主题文件。这里只介绍这一种实现方式,别的方式有兴趣的可以自己研究。
主要实例化AssetManager对象和Resources对象来实现的
AssetManager assetManager = AssetManager.class.newInstance(); Method addAssetPath = assetManager.getClass().getMethod("addAssetPath", String.class); addAssetPath.invoke(assetManager, skinPkgPath); Resources superRes = context.getResources(); Resources skinResource = new Resources(assetManager,superRes.getDisplayMetrics(),superRes.getConfiguration());
github上就有一个不错的开源项目https://github.com/fengjundev/Android-Skin-Loader,有兴趣的朋友可以研究下源码
版权声明:本文为子墨原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/zimo2013/article/details/49885513