目录
前言
之前介绍的是动态换肤库,这次介绍的是一款静态换肤库:BiuSkin1DN。日夜模式换肤是静态换肤的一种,这种是Android自带的一种方式。
BiuSkin1DN主要针对日夜模式而设计的。
demo的使用可以看《静态换肤库BiuSkin1DN的使用》
正文
BiuSkin1DN设计跟之前介绍的BiuSkin1PNA 和BiuSkin1PA类似,都是对View的采集,然后在需要的时候进行加载对应资源。
如果对日夜模式不熟悉,可以看《》,这篇算是我比较全的记录。
什么是BiuSkin1DN
-
1表示换肤方式一(有空的话会出方式二)
-
DN是DayNight的缩写,也就是日夜模式的标志。
下载
接口
主要类或接口
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(...) ...
具体请下载BiuSkin1DN.jar查阅。
必选接口
不可缺少,缺一不可
初始化
/** * 初始化 * @param application Application的this * @param appUiMode 1. true 应用内换肤模式,只支持单个Activity * 2. false 系统换肤模式,支持多个Activity */ SkinManager.initContext(this, false);
切换模式
//换肤切换 SkinManager.getInstance().changeSkin();
如果BiuSkinResource2.apk或BiuSkinResource2.apk不存在或者传入的是null,使用的就是默认的皮肤资源。
可选接口
不一定要,可根据需求进行配置。
换肤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,欢迎留言
暂无评论...
随机推荐
Kotlin的基本语法
前言简单记录一下Kotlin的基本语法。这里只是简单的记录,只是方便自己而已。正文注释注释是为了使代码易于阅读。单行注释单行注释通常是对程序中的某一行代码进行解释,用符号“//”表示//初始化UIinitUI();多行注释多行注释就是注释中的内容可以是多行,以符号“/ ”开...
Square开源框架Coordinators的简单使用
Coordinators简介Coordinators是由知名公司Square开发并开源的框架,Simple lifecycle for your MVWhatever on Android. No kidding.哈哈,比较小众,但很不错的。目前国内没啥资料介绍这个和使用这个。Github地...
吴念真:年糕
阿旺和我读同一个小学,低我两个年级,所以之前我并不认识他,不过他倒知道我,因为小学时代我是学校升降旗典礼的司仪。遇见他的时候,我已经十七岁,他十五岁,两个人都已经在台北工作了。阿旺做事的铁工厂和我住的地方其实就在同一条巷子里,只是没碰过面,直到有一天房东叫铁工来装铁窗,扛着铁架的小助手看看我,...
Eclipse历史版本下载
有时候不需要最新的Eclipse版本,因此需要下载老一点的在网上看到有Eclipse历史版本的链接说明,因此记录于此.不过,有部分链接失效了..下载路径 http://wiki.eclipse.org/Older_Versions_Of_Eclipse
[转]android NTP时间同步
推荐使用 极客导航:极客导航(http://www.91es.com/jike.html)相关文件:frameworks/base/services/java/com/android/server/SystemServer.javaframeworks/base/services/j...
何其芳:脚步
你的脚步常低响在我的记忆中,在我深思的心上踏起甜蜜的凄动。有如虚阁悬琴,久失去了亲切的手指,黄昏风过,弦弦犹颤着昔日的声息;又如白杨的落叶飘在无言的荒郊,片片互递的叹息犹似树上的萧萧。呵,那是江南的秋夜!深秋正梦得酣熟,而又清彻,脆薄,如不胜你低抑之脚步!你是怎样悄悄地扶上曲...