前言
之前介上线了Android的动态换肤库(BiuSkin1PA和BiuSkin1PNA),但没有写demo,因此这次抽空更新一下如何使用这些换肤库。
》和《》
正文
动态换肤就是常说的外置换肤,App和换肤资源是单独分开的,需要的时候就加载换肤资源即可。这里介绍的两个lib库都是动态换肤的。
动态换肤的优点:
-
满足用户个性化界面,比如提供多套皮肤
-
相比于静态换肤,减少了apk大小
-
皮肤资源独立,便于维护
BiuSkin1PA和BiuSkin1PNA都是动态换肤库,而且BiuSkin1PNA是在BiuSkin1PA基础上修改的,因此接口都一样!
BiuSkin1PA的实现需要Activity继承SkinCompatActivity或SkinActivity,因此存在局限性,限制在Activity中使用。但BiuSkin1PNA不需要,因此比较完美之前App中的所有创建的View。
本文主要介绍BiuSkin1PNA,但如果想试试BiuSkin1PA,只需要把你Activity继承SkinCompatActivity或SkinActivity即可。
代码片段
第一步
创建两个模块,分别命名为BiuSkin1_Test和BiuSkin1_Test_skin。
BiuSkin1_Test默认皮肤和逻辑代码。BiuSkin1_Test_skin主要是用于放图片资源。
当然,如果你有多套皮肤,可以再创建皮肤模块。
BiuSkin1_Test_skin是让皮肤资源打包成apk,当然你可以换成其他的压缩包!
BiuSkin1_Test_skin资源目录最好跟BiuSkin1_Test一样。
BiuSkin1_Test
E:. ├─libs └─src └─main ├─java └─res ├─color ├─drawable ├─drawable-nodpi ├─layout └─values AndroidManifest.xml
BiuSkin1_Test_skin
E:. └─src └─main └─res ├─color ├─drawable ├─drawable-nodpi └─values AndroidManifest.xml
BiuSkin1_Test_skin中的res目录下,除了layout的,其他跟资源有关系的都要(推荐参考上面的)。
第二步
下面只关心BiuSkin1_Test的代码了。
核心类
SkinManager.java
单例模式,第一次需要初始化上下文,然后通过SkinManager.getInstance().xxx调用对应的方法。
参考文章
-
《》
-
《