目录
前言
上一版写过《》,出现比较严重的缺点,就是Dialog,Toast和悬浮窗View无法采集创建的View,因此也无法换肤(若在Activity中使用的话,可参考《》)。
因此,为了解决上面缺点,在BiuSkin1PA 基础上进行调整,搞出了一个新的动态换肤库,重新命名为:BiuSkin1PNA。
动态换肤的优点:
-
满足用户个性化界面,比如提供多套皮肤
-
相比于静态换肤,减少了apk大小
-
皮肤资源独立,便于维护
Demo介绍,可看《换肤库BinSkin1的使用》
正文
总所周知,动态换肤的步骤主要如下:
-
-
加载皮肤包
-
刷新皮肤资源
什么是BiuSkin1PNA
-
1表示换肤方式一
-
P通过Path路径加载皮肤资源
-
NA是NoActivity缩写,不继承Activity
下载
接口
跟BiuSkin1PA 的使用差不多,也更简单。
后面会有专门一篇介绍使用,这里也就大致介绍一下。
主要类或接口
SkinManager.java ISkinRefreshListener.java
ISkinRefreshListener.java
public interface ISkinRefreshListener { boolean onSkinRefresh(View view, String attrName, String attrValue, String attrType, int resourceId); }
返回View和View的属性,让用户自己判断是否需要拦截并实现换肤。
SkinManager.java
核心类,显示主要接口
public void addSupportName(String[] attributeList); public void addIgnoreView(String[] ignoreList); public void changeSkin(final String path); public void setISkinRefreshListener(ISkinRefreshListener listener); public Drawable getDrawable(...); public int getColor(...); public ColorStateList getColorStateList(...); public float getDimension(...) ...
具体请看BiuSkin1PNA.jar
必选接口
不可缺少,缺一不可
初始化
// 初始化 SkinManager.initContext(this);
加载资源
//换肤切换,传入资源包路径[必须] SkinManager.getInstance().changeSkin(path);
可选接口
不一定要,可根据需求进行配置。
换肤View监听
# 设置监听,可以拦截View SkinManager.getInstance().setISkinRefreshListener(this); @Override public boolean onSkinRefresh(View view, String attrName, String attrValue, String attrType, int resourceId) { //返回View和相关属性资源 //这里可以做拦截,返回true表示拦截 return false; }
添加忽略View
参考如下规则
SkinManager.getInstance().addIgnoreView(new String[]{"androidx.125la.Toolbar"});
添加自定义属性
支持添加自定义属性换肤
SkinManager.getInstance().addSupportName(new String[]{"barSize"});
参考文章
部分参考网上文章,时间太久,链接丢了,抱歉!
赏一杯可乐
如果觉得OK,欢迎打赏一杯可乐哈,谢谢
有bug,欢迎留言
暂无评论...
随机推荐
梁文道 :清贫与富贵
我在台湾念小学的时候,有一个同学是军人子弟,他的父亲大概很早就退伍了,所以没有领到太多的长俸和福利,后来务农为生,日子过得很辛苦。虽然贫困,但他家的桌子总是擦得一尘不染,厕所地板亮得反光。每次到他家吃饭,我都震慑于老伯伯一口洪亮的山东腔,以及他那威严的仪容。而他的孩子,我这位同学,尽管一身旧衣早...
老舍:理想的生活,不是房子车子票子
我的理想家庭要有七间小平房:一间是客厅,古玩字画全非必要,只要几把很舒服宽松的椅子,一二小桌。一间书房,书籍不少,不管什么头版与古本,而都是我所爱读的;一张书桌,桌面是中国漆的,放上热茶杯不至烫成个圆白印;文具不讲究,可是都很好用;桌上老有一两枝鲜花,插在小瓶里。两间卧室,我独居一间,没有臭...
樊小纯:借我
《借我》是樊小纯写给木心先生的一首诗。 借我一个暮年,借我碎片,借我瞻前与顾后,借我执拗如少年 借我后天长成的先天,借我变如不曾改变借我素淡的世故和明白的愚,借我可预知的脸 借我悲怆的磊落,借我温软的鲁莽和玩笑的庄严借我最初与最终的不敢,借...
Android图片旋转
前言Android对图片进行旋转记录。于Y轴往里面旋转。具体效果如图记录于此,方便自己查阅。正文直接上代码就是对ImageView的封装<com.biumall.reflectview.view.RotateView android:id="@+id/main_rev...
顾城:门前
我多么希望,有一个门口早晨,阳光照在草上 我们站着扶着自己的门扇门很低,但太阳是明亮的 草在结它的种子风在摇它的叶子我们站着,不说话就十分美好 有门,不用开开是我们的,就十分美好
刘大白:心上的写真
从低吟里,短歌离了她底两唇,飞行到我底耳际。但耳际不曾休止,毕竟颤动了我底心弦。从瞥见里,微笑辞了她底双唇,飞行到我底眼底。但眼底不曾停留,毕竟闪动了我底心镜。心弦上短歌之声底写真,常常从掩耳时复奏了;心境上微笑之影底写真,常常从合眼时重现了。1922