换肤库BinSkin1的使用

Android2023年8月30日 am8:08发布1年前 (2023)更新 91es.com站长
58 0 0
目录

前言

之前介上线了Android动态换肤库(BiuSkin1PABiuSkin1PNA),但没有写demo,因此这次抽空更新一下如何使用这些换肤库。

也可以直接看对应动态换肤库的介绍:《动态换肤库:BiuSkin1PA》和《动态换肤库:BiuSkin1PNA

正文

动态换肤就是常说的外置换肤,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主要是用于放图片资源。

当然,如果你有多套皮肤,可以再创建皮肤模块。

  1. BiuSkin1_Test_skin是让皮肤资源打包成apk,当然你可以换成其他的压缩包!

  2. 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调用对应的方法。

隐藏内容!
付费阅读后才能查看!
3
多个隐藏块只需支付一次

参考文章

  1. 动态换肤库:BiuSkin1PA

  2. 动态换肤库:BiuSkin1PNA

 历史上的今天

  1. 2024: Kotlin中的特殊函数简介(0条评论)
  2. 2019: 戴望舒:致萤火(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com[备用域名]
3、 本站内容: 部分来源于网络,仅供站长学习和参考,若侵权请留言

暂无评论

暂无评论...

随机推荐

Visual Studio 2017常用部分快捷键

前言最近在使用VS2017温习C语言,这工具很多快捷键都忘了,这里记录部分,方便自己查阅,后续慢慢添加。正文1、代码片段多行注释step1、选中要注释的代码段;step2、按 Ctrl + K 键;step3、再按 Ctrl +C 键。2、代码片段取消注释step1、选中要取消注释的...

聂鲁达:雨

不,女王最好也不要认出你的面孔,这更甜美这方式,我的爱,远比偶像更甜美,你的头发的重量在我手中,你还记得吗?芒果树的花朵落在你的发间?这些手指不像洁白的花瓣:看看它们,它们像根,它们像石头击中正滑动的蝎子。别害怕,我们正在等待雨的降临,赤裸着,雨,正同样地降临在马努塔拉山上。就...

Android GridView horizontalSpacing属性值无效

前言Android GridView horizontalSpacing属性值无效解决方式,方便自己查阅。好记性不如烂笔头正文之前一直没注意这个问题,今天调试时发现GridView设置为match_parent后没有horizontalSpacing的属性效果没有实现。android:ho...

[摘]从视频中获取关键帧

一、关键帧介绍视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。简单地说,I帧是关键帧,属于帧内压缩。就是和AVI的压缩是一样的。P是向前搜索的意思。B是双向搜索。他们都是基于I帧来压缩数据。I帧表示关键帧,可以理解为这一帧画面的完整保留...

Android 13 MediaProvider简单记录

前言Android 9时扫描逻辑还在MediaScanner中(这块之前有介绍过),而后续Android高版本开始变化,以Android 13来说,扫描逻辑已经放在MediaProvider中了,也就是ModernMediaScanner。Android 10,11和12项目少今天就简单...

windows下FFmpeg使用以及ffmpeg抽取视频的关键帧

FFmpeg 简介FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了目前领先的音/视频编码库libavcodec。FFmpeg是在 Linux 下开发出来的,但它可以在包括 Windows 在内的大多数操作系统中编译。这个项目是由 Fabrice ...