android 皮肤,Android换肤

article/2025/6/9 10:59:44

前言

之前做个APP需要用到换肤,在githup上面找了很久,终于找到一款功能强大、基本能够满足产品需求的换肤框架,那就是Android-skin-support,这个框架换肤功能很强大、不管是白天、黑夜还是任意颜色、图片的皮肤包都可以,比较方便。

正文

导入依赖包

// FlycoTabLayout 控件换肤支持

compile 'skin.support:flycotablayout:2.1.2'

compile 'skin.support:skin-support:2.1.3'

// skin-support 基础控件支持

compile 'skin.support:skin-support-design:1.2.5'

// skin-support-design material design 控件支持[可选]

compile 'skin.support:skin-support-constraint-layout:1.0.2'

1. 在Application的oncreate中初始化

@Override

public void onCreate() {

super.onCreate();

initSkinSupport(this);

}

/**

* 初始化换肤控件

*/

private void initSkinSupport(Application application) {

SkinCompatManager.withoutActivity(application)

.addInflater(new SkinMaterialViewInflater()) // material design

.addInflater(new SkinConstraintViewInflater()) // ConstraintLayout

.addInflater(new SkinFlycoTabLayoutInflater()) // H07000223/FlycoTabLayout

.setSkinStatusBarColorEnable(false)

.loadSkin();

}

2. 加入换肤包

将换肤包放在src/main/assets/skins的文件夹下面,将皮肤包的名称的后缀由.apk改成.skin.

458aaf0b8a91?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

3. 开始换肤

点击换肤按钮开始换肤

458aaf0b8a91?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

在代码中切换本地的几个主题,这几个主题都是放在本地的,也就是一直存放在src/main/assets/skins文件件下面的,不需要从网上下载。

/**

* 本地颜色主题变化

*/

private void initYsZhuti(String themeId) {

switch (themeId) {

case "1":

changeSkinApk("default", "1");

break;

case "2":

CustomViewSkinUtils.copySkinApk(this, "2");

changeSkinApk("2.skin", "2");

break;

case "3":

CustomViewSkinUtils.copySkinApk(this, "3");

changeSkinApk("3.skin", "3");

break;

case "4":

CustomViewSkinUtils.copySkinApk(this, "4");

changeSkinApk("4.skin", "4");

break;

}

}

开始切换主题的相关视图,default是默认主题

private void changeSkinApk(final String highZhuTiName, String themeId) {

rl_use_zhuti.setEnabled(false);

if (highZhuTiName == null)

return;

if ("default".equals(highZhuTiName)) {

skinCompatManager.restoreDefaultTheme();

spUtils.saveMyZhuTi(themeBeanId);

tv_use_zhuti.setBackgroundResource(R.drawable.layer_zhuti_preview_press_tv);

tv_use_zhuti.setText(getResources().getString(R.string.wo_have_use));

tv_use_zhuti.setTextColor(ContextCompat.getColor(mActivity, R.color.preview_b_press_ft));

rl_use_zhuti.setEnabled(false);

} else {

loadDialog.show();

new Handler().postDelayed(new Runnable() {

@Override

public void run() {

skinCompatManager.loadSkin(highZhuTiName, new SkinCompatManager.SkinLoaderListener() {

@Override

public void onStart() {

}

@Override

public void onSuccess() {

loadDialog.dismiss();

spUtils.saveMyZhuTi(themeBeanId);

tv_use_zhuti.setBackgroundResource(R.drawable.layer_zhuti_preview_press_tv);

tv_use_zhuti.setText(getResources().getString(R.string.wo_have_use));

tv_use_zhuti.setTextColor(ContextCompat.getColor(mActivity, R.color.preview_b_press_ft));

}

@Override

public void onFailed(String s) {

loadDialog.dismiss();

rl_use_zhuti.setEnabled(true);

}

});

}

},700);

}

其中换肤的两个关键方法

// 指定皮肤插件, 并且监听加载状态

SkinCompatManager.getInstance().loadSkin("new.skin");

// 恢复应用默认皮肤

SkinCompatManager.getInstance().restoreDefaultTheme();

对于其他更加的换肤,需要下载,不用放在src/main/assets/skins的文件夹下面,这样通过接口用户就能获取最新、好看的皮肤,易于维护、更新。

换肤后的效果

458aaf0b8a91?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

下一篇将介绍如何生成皮肤包

文章来源:https://blog.csdn.net/weixin_39905725/article/details/117609490
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://chatgpt.dhexx.cn/article/s0B9hFv6.shtml

相关文章

Android 应用换肤方案的总结

虽然现在已经有很多不错的换肤方案,但是这些方案或多或少都存在自己的问题。在这篇文章中,我将对 Android 现有的一些动态换肤方案进行梳理,对其底层实现原理进行分析,然后对开发一个新的换肤方案的可能性进行总结。 1、通过自定…

Android 插件化换肤方案

效果 实现流程 实现LayoutInflater.Factory2这个接口,实现onCreateView方法(主要仿照系统原来LayoutInflater.createView()方法的实现),此处可以拿到页面中所有的View,判断有没有需要换肤的View,并且保存下来;在Activ…

墨迹天气桌面挂件换肤分析

该篇文章需要准备如下工具: 1、墨迹皮肤文件,下载地址。 Andorid换肤在网上搜索出来的结果,大概有三种: 1、应用本身带有写好的布局 优点:开发难度低 缺点:灵活性低,用户不能自定义皮肤。 2、使…

前端换肤的一些思考

先看看大家怎么做的。下面是两篇别人写的文章,最后是我自己的方法。 第一篇:聊一聊前端换肤 之前在做网站换肤,所以想谈谈网站换肤的实现。网页换肤就是修改颜色值,因此重点就在于怎么来替换。 一般实现 如上图,我们…

Visio保存为网页出错

visio 试图保存文档时出错。已创建的页面可能无效。 试图保存文档时出错。以创建的页面可能无效。最近在用Visio作图的时候时长发生的问题。 经过摸索,不覆盖保存没有问题,如果覆盖保存,有时会有这个问题。解决办法就是把以前生成的网页和相关…

Visio 2016软件

Visio 2016是微软官方最新发布的一款领先的图表解决方案,它可以帮助企业制作定义流程、编辑最佳方案的同时还可以建立可视化计划变革的一款实用工具。这款软件目前提供了:上手图例(starter diagrams)、成百上千的智能形状、一步数…

解决visio和office365冲突,无法安装visio问题

本教程用于解决office365和visio冲突,无法安装visio问题 目前系统中已经安装Office365 尚未安装visio专业版本 1、下载office增强工具。 office增强工具下载地址 右键解压,此处要记得解压的目录(建议在当前目录下)。 根据自…

Visio软件

Visio使用小技巧 上标、下标快捷键 上标:CtrlShift“”下标:Ctrl“” 自定义图形旋转角度 当点击菜单栏上的视图——任务窗格——大小和位置选项,在页面编辑区的左下方出现一个大小和位置窗口。 大小和位置窗口如下: 自…

Visio文件编辑查看工具Visio Viewer for Mac

Visio Viewer for Mac可以打开和查看Visio文件(.vsd、.vdx和.vsdm文件)。它具有简单易用的用户界面,可以快速加载和显示Visio文件。此外,它还支持导出文件为PDF、PNG、JPEG等格式,方便用户进行文件转换和共享。 Visio…

与你一起学习Microsoft Visio——基础篇

Hi,你好!我是大黄蜂,非常高兴借此机会与你一起学习MS Visio的相关知识和技能。这一次的分享主要是结合本人在实际使用Visio过程中的一些方法技巧并总结整理其他人分享的知识,其中有一些材料则来源于互联网,期待通过我的…

【Visio】 windows Visio 画图

1、Visio如何画圆形 画圆用 里面的第二个画圆工具 ,用这个工具可以画出圆或者椭圆。如果想得到一个正圆,在画的时候按住shift键即可。 画好一个圆之后单击它,再单击 填充选项,选择你想填充的颜色,选黑色的话就会出现一…

visio2019 专业版,两种方法

安装好visio后,有两种方法jihuo:方法2中自带安装包,有需要可以下载 注意:visio版本要和电脑上带的其他office版本保持一致,否则会不兼容。 1.参考这篇文章,使用代码jihuo https://blog.csdn.net/qq_39400113/article…

Microsoft Visio-Microsoft Visio下载

Microsoft Visio 2013可以帮助你以更直观的方式创建图表的新功能。Microsoft Visio 2013提供共同编写功能,可使团队协作变得更加容易。你也可以通过Microsoft Visio 2013软件增强图表的动态性,方法是将形状链接到实时数据,然后使用 SharePoin…

网页草图利器:Visio Stencils for Information Architects

以前,一直为如何在正式编码开发前与用户确认一个需求而苦恼,因为在互联网企业做内部系统开发,开发周期实在太短,以至于几乎不太可能先给用户一个原型已确认前端UI的需求,因此多数情况下我们会选择画一个Web界面草图给用…

visio对象放入word显示不全_这个可以代替Visio的流程图绘制软件,你值得拥有,还有网页版的~...

一、开篇前言 大家好,大飞鸽就是我,我就是大飞鸽。 流程图大家都熟悉, 像化工专业工艺流程图、 实验方案技术路线图等等。 流程图的优势也显而易见, 不但可以帮助自己梳理思路, 而且也可以让读者一目了然。 常用的绘制…

用Python将音频内容转换为文本格式,方言可以吗?

当对一个或多个人的谈话进行记录时,采用一种高度准确和自动化的方式将口语提取为文本非常有用。转换成文字后,便可以将其用于进一步分析或用作其他功能。 在本教程中,我们将使用称为AssemblyAI(https://www.assemblyai.com/&…

python批量转换音频格式,flac转mp3等

可以批量的将一种格式的音频文件转化成指定的格式, 如:mp3,wav , ogg ,flac 的格式之间可以相互转换, 转换后的文件名与原文件相同。 注意:运行代码除了需要安装库pydub之外,还需安装软件ffmpeg.exe&…

Python如何将仅包含音频内容的Mp4,提取并转换为Mp3

关于如何将Mp4转换为Mp3的文章很多,方案也都很有效。但是这其中的大部分方法,并不适用于该Mp4文件中仅包含音频内容的情况,比如:有人从YouTube,下载了仅包含音频内容的文件,这个文件其实还是Mp4格式的&…

PCM和WAV音频格式的区别,以及python自动转换

目录 WAV和PCM的简单介绍PCMWAV 关于音频的基础知识声道数channels采样位数bits采样频率sample_rate 进阶内容互相转换代码 WAV和PCM的简单介绍 PCM pcm:pulse code modulation,脉冲编码调制。将声音等模拟信号变成符号化的脉冲列,予以记录…

音频文件常用格式

目录 一、前言二、音频文件格式1、MP32、WAV3、WMA4、FLAC5、MIDI6、RA7、APE8、AAC9、CDA10、MOV 三、总结 一、前言 在复习备考《多媒体技术》时整理的多媒体技术音频文件的常用格式。本文完全足以应对《多媒体技术》中音频的相关考点后续还有一份多媒体技术相关的文档整理会…