动态换肤库:BiuSkin1PA

2023年8月25日 pm2:42发布1年前 (2023)更新 91es.com站长
59 0 0
目录

前言

Android换肤插件已经烂大街了,但找到合适的却比较难。这里记录一下之前写的换肤库,比较简单的动态换肤库:BiuSkin1PA.jar。

动态换肤就是常说的外置换肤,App和换肤资源是单独分开的,需要的时候就加载换肤资源即可。

动态换肤的优点:

  • 满足用户个性化界面,比如提供多套皮肤

  • 相比于静态换肤,减少了apk大小

  • 皮肤资源独立,便于维护

正文

总所周知,动态换肤的步骤主要如下:

  1. 采集View的相关属性

  2. 加载皮肤包

  3. 刷新皮肤资源

缺点

  1. 必须继承继承SkinCompatActivity或SkinActivity

  2. Dialog,Toast和悬浮窗无法采集,也无法换肤(若在Activity中,参考《Android换肤之Toast和Dialog》)

  3. 由于是采集并保存了View相关属性,存在耗资源

第二个比较致命!

下载

BiuSkin1PA.jar中1PA解释

  1. 1表示换肤方式一

  2. P通过Path路径加载皮肤资源

  3. A继承Activity

隐藏内容!
评论后才能查看!

使用方式

第一步

初始化

SkinManager.initContext(this);
第二步
  1. addIgnoreView()添加忽略的View

  2. addSupportName()添加自定义View的属性

第三步

设置监听,多个Activity,请在Application中监听。

  1. 可以拦截不想换肤的属性

  2. 也可以处理自定义View中新增的属性进行处理换肤

SkinManager.getInstance().setISkinRefreshListener(this);

下面是对barTextColor和barTextSize属性的拦截并自己调用方式实现换肤。

TextSeekBar是自定义View,barTextColor和barTextSize是新增的属性

@Override
public boolean onSkinRefresh(View view, String attrName, String attrValue,
String attrType, int resourceId) {
    //返回View和相关属性资源
    //这里可以做拦截,返回true表示拦截
    return false;
}
第四步

继承SkinAppCompatActivity或SkinAppActivity,并重写openSwitchSkin()

public class MainActivity extends SkinCompatActivity{
    //重写
    @Override
    protected boolean openSwitchSkin() {
        return true;
    }
}

public class MainActivity extends SkinActivity{
    //重写
    @Override
    protected boolean openSwitchSkin() {
        return true;
    }
}
第五步
# path是换肤资源路径+资源apk
SkinManager.getInstance().changeSkin(path);

参考文章

赏一杯可乐

如果觉得OK,欢迎打赏一杯可乐哈,谢谢

img

有bug,欢迎留言

版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com[备用域名]
3、 本站内容: 部分来源于网络,仅供站长学习和参考,若侵权请留言
4、 本站打赏: 打赏站长一杯冰可乐 打赏站长一杯冰可乐

暂无评论

暂无评论...

随机推荐

[摘]Android多语言目录对照表

前言 本文摘抄,原文链接在文末。 有参与外销项目,对各国翻译存放的目录很懵,老是忘记哪个对应哪个,今天看到网上相关整理,摘抄于此,方便自己查阅。 好...

王安忆:洗澡

行李前的马路上没有一棵树,太阳就这样直晒下俩。他已经将八大包书捆上了自行车,自行车再也动不了了。那小伙子早已注意他了,很有信心地骑在他的黄鱼车上,...

[摘]Android横屏和竖屏的方法

前言 本文摘抄,方便自己查阅。 正文 AndroidManifest.xml配置 在指定的要设置的Activity对应的标签中加入android:screenOrientation相关属性。 unspeci...

林清玄:什么才是有品质的生活

有好多人喜欢讲生活品质,他们认为花的钱多、花得起钱就是生活品质了。 于是,有愈来愈多的人,在吃饭时一掷万金,在买衣时一掷万金,拼命的挥霍金钱,当我...

[NDK开发]Android JNI开发之动态注册

前言 我们第一篇文章 《[NDK开发]Android JNI 开发之第一个 JNI实例》就是静态注册的。 除了有静态注册,还有动态注册。 静态注册 静态注册:先由Java得到本...

朱光潜:读书不在多,在于选得精,读得彻底

十几年前我曾经写过一篇短文谈读书,这问题实在是谈不尽,而且这些年来我的见解也有些变迁,现在再就这问题谈一回,趁便把上次谈学问有未尽的话略加补充。 ...