Android实现换肤的两种思路分析

2019-12-10 19:44:14丽君
易采站长站为您分析Android实现换肤的两种思路分析,较为详细的分析了Android实现换肤的具体方法,需要的朋友可以参考下  

本文分析了Android实现换肤的两种思路。,具体如下:

这里来了解换肤实现及不同方案的差异和使用场合。

一、从功能上划分

1) 软件内置多个皮肤,用户不能修改;

2) 官方提供皮肤下载,用户使用下载的皮肤;

3) 官方提供皮肤制作工具或方法,用户自制皮肤。

二、皮肤定义

软件皮肤包括图标、字体、布局、交互风格等,换肤就是换掉皮肤包括的部分或所有资源。

三、皮肤与APP分离

1)打包皮肤文件

默认格式是apk。例如Launcher,它的桌面皮肤格式是一个apk;

自定义的格式为zip。例如墨迹天气皮肤扩展名是mja,搜狗输入法的皮肤扩展名是sga,它们的文件格式实际上都是zip。

四、资源访问

1)apk格式

apk之间读取数据的条件是:有相同签名并且AndroidManifest.xml中配置android:sharedUserId有相同的属性值,这样两个apk运行在同一个进程中,就能互相访问数据了。

方法如下:

a) 应用程序和皮肤程序的AndroidManifest.xml中配置

例如:

复制代码 android:sharedUserId="com.zj"

 

b) 文件与应用apk中对同一功能的皮肤文件名要一致

例如:应用程序的背景图片路径:Skinresdrawable-hdpiXX.png

那么皮肤apk中的背景图片文件路径也应该是:Skinresdrawable-hdpiXX.png

c)访问资源的方法

复制代码 Context context = createPackageContext("com.zj.skin", Context.CONTEXT_IGNORE_SECURITY);

 

获取到com.zj.skin对应的Context,通过返回的context对象就可以访问到com.zj.skin中的任何资源。