当前位置: 首页 > news >正文

关于换肤框架Android-skin-support的使用方法

之前在社区上提问过如何更换三种主题、评论区里有大哥提供了换肤框架 然后发现其实有一个换肤框架的学习成本很低很方便 在此记录 各位也可以参考

换肤框架 Android-skin-support

链接:https://github.com/ximsfei/Android-skin-support

只需要进行以下操作即可成功,当然还有别的方法可以实现,这里只介绍我的实现方法:

第一步,Gradle导入:

这里是有别的版本的,但是我的项目用到这里就可以了,所以没有再去往下更新版本

   implementation 'skin.support:skin-support:3.1.4'			// skin-supportimplementation 'skin.support:skin-support-design:4.0.5'		// skin-support-design material design 控件支持[可选]implementation 'skin.support:skin-support-cardview:4.0.5'		// skin-support-cardview CardView 控件支持[可选]implementation 'skin.support:skin-support-constraint-layout:4.0.5'	// ConstraintLayout 控件支持[可选]

第二步,在代码中初始化:

我是在Application里实现的,其他情况自己考虑

    private void initSkin() {SkinCompatManager.withoutActivity(this)                         // 基础控件换肤初始化.addInflater(new SkinMaterialViewInflater())            // material design 控件换肤初始化[可选].addInflater(new SkinConstraintViewInflater())          // ConstraintLayout 控件换肤初始化[可选].addInflater(new SkinCardViewInflater())                // CardView v7 控件换肤初始化[可选].setSkinStatusBarColorEnable(false)                     // 关闭状态栏换肤,默认打开[可选].setSkinWindowBackgroundEnable(false)                   // 关闭windowBackground换肤,默认打开[可选].loadSkin();}// 如果Activity继承自AppCompatActivity的话,需要在Activity里重载这部分内容@NonNull@Overridepublic AppCompatDelegate getDelegate() {return SkinAppCompatDelegateImpl.get(this, this);}

第三步,设置你的Res文件

本质上是找到对应资源文件夹的对应名称的文件然后替换,所以这里需要在Gradle里写好你的资源路径 然后自行创建你的Res文件夹即可,里面放的资源文件就是你要换的图 还要注意的一点是,比如你的默认图名称为“icon_botton”,那么你需要更换的图片的前缀或者后缀应该是“XXXX_icon_botton”或“icon_botton_XXXX”

    sourceSets {main {res.srcDirs = ['src/main/res', 'src/main/res-XXXX', 'src/main/res-XXXX']}}

第四步,代码换肤

接下来只需要在需要换肤的时候设置这么一句代码即可成功

    SkinCompatManager.getInstance().loadSkin("night", SkinCompatManager.SKIN_LOADER_STRATEGY_BUILD_IN); // 后缀加载SkinCompatManager.getInstance().loadSkin("night", SkinCompatManager.SKIN_LOADER_STRATEGY_PREFIX_BUILD_IN); // 前缀加载// 恢复应用默认皮肤SkinCompatManager.getInstance().restoreDefaultTheme();

结束。

封面源自影视飓风,希望自己也能无限进步。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Qt登录窗口设计
  • HTML 列表和容器元素——WEB开发系列10
  • 人工智能缺陷检测方案METIS(梅迪斯):汽车零部件检测
  • 我的世界 异地联机教程 无需公网IP、服务器
  • 利用EditPlus进行Json数据格式化
  • 机器学习系列—深入探索弗里德曼检验:非参数统计分析的利器
  • 3.MySQL面试题之Redis 和 Mysql 如何保证数据一致性?
  • 【人工智能】利用TensorFlow.js在浏览器中实现一个基本的情感分析系统
  • 将2,3,4,5,6,8分别填入算式“口口口X口口口“的“囗“中,怎么填使得算式结果最大。
  • 什么是视频比特率?与视频时长是什么关系
  • Python环境安装及PIP安装(Mac OS版)
  • python蟒蛇绘制
  • 【Qt开发】QtCharts图表 在ui上添加QChartView控件并进行绘图配置
  • drools规则引擎 规则配置文件drl语法使用案例
  • SpringBoot教程(二十三) | SpringBoot实现分布式定时任务之xxl-job
  • 网络传输文件的问题
  • [译]Python中的类属性与实例属性的区别
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • go append函数以及写入
  • Java 内存分配及垃圾回收机制初探
  • JavaScript设计模式之工厂模式
  • laravel 用artisan创建自己的模板
  • MySQL QA
  • Object.assign方法不能实现深复制
  • Spring核心 Bean的高级装配
  • SQLServer之索引简介
  • 基于Android乐音识别(2)
  • 马上搞懂 GeoJSON
  • 驱动程序原理
  • 网络应用优化——时延与带宽
  • 无服务器化是企业 IT 架构的未来吗?
  • 源码安装memcached和php memcache扩展
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​数据链路层——流量控制可靠传输机制 ​
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (Java)【深基9.例1】选举学生会
  • (k8s)Kubernetes本地存储接入
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (五)网络优化与超参数选择--九五小庞
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转) ns2/nam与nam实现相关的文件
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)jdk与jre的区别
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (转)一些感悟
  • (转载)深入super,看Python如何解决钻石继承难题
  • .net CHARTING图表控件下载地址
  • .Net Web项目创建比较不错的参考文章
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明