本系列文章主要是对一个Material Design的APP的深度解析,主要包括以下内容

  • 基于Material Design Support Library作为项目整体框架。对应博文:Android Material Design 兼容库的使用详解

  • RecyclerView的万能适配器。对应博文:打造一个RecyclerView的万能适配器-减少你的代码冗余

  • 高仿QQ的自定义View。对应博文:Android自定义View之高仿QQ健康

  • 主题换肤功能。对应博文:Android主题换肤 无缝切换

效果图

Android主题换肤

源码解析参见

Android主题换肤 无缝切换 - 简书

使用

在使用的时候一定要记得要Activity要去继承于SkinBaseActivity,Fragment要继承于SkinBaseFragment,Application要继承于SkinBaseApplication。当然把这个框架做为你的项目依赖项肯定是必不可少的。为了Demo的简单,这里我只使用了下面三个颜色作为可以换肤的资源,当然如果你想要使用drawable文件也是可以办到的,前提是你一定要把这个Demo看懂。

来看一个布局文件

其中

xmlns:skin=”http://schemas.android.com/android/skin”

是我们自定义的,在SkinConfig有。

我们只需在有皮肤更改需求的View中加入skin:enable=”true” 就OK了。

再来看看MainActicvity的部分代码

这里就是动态的添加有皮肤更改需求的View。

上面就介绍完了在布局文件中使用方法和在代码中使用方法。

我们应该怎么去换肤呢?很简单,只需调用SkinManager的load方法就可以了,把皮肤路径传进去就可以了,我的这个Demo为了简单起见,没有做在线换肤的功能,只是在本地提供了可以更换的皮肤,看到这里我相信你对怎样在线换肤已经有想法了

最最后我们来看看怎么去开发皮肤包。其实这个是最简单的,皮肤包实际上就是一个基本的Android项目,里面不包含类文件,只有资源文件。这里只需注意 这里的资源文件名字一定要和原项目中的相同,并且只用包含那些在皮肤更改时需要改变的那些就行了!例如我的这个Demo就只是简单对上面的三种颜色做了简单的切换。开发了棕色和黑色两款皮肤,所以资源文件中只有三个color的值,开发完成之后我们需要将其打包成apk文件,为防止用户点击安装,我们将其后缀改成了skin,这样做也具有标识性。如果还是不太清楚可以直接去源码中查看。

源代码

代码下载

参考链接

Android主题换肤 无缝切换 - 简书

最新文章

  1. git中.gitignore配置项不起作用-解决办法
  2. android之二维码扫描的实现
  3. IE7 float:left失效的解决方法
  4. adobe pro破解说明
  5. Java基础知识强化之网络编程笔记25:Android网络通信之 Future接口介绍(Java程序执行超时)
  6. Sitemap Editors for Dynamics CRM 2013
  7. 你好,C++(14)如何描述“一个名叫陈良乔,年龄33岁,身高173厘米,体重61.5千克的男人”——3.8 用结构体类型描述复杂的事物
  8. 【BZOJ1031】[JSOI2007]字符加密Cipher 后缀数组
  9. VS 2012 插件卸载(删除自己安装的插件)
  10. lua中 table 元表中元方法的重构实现
  11. C#之FTP上传下载(二)
  12. git彻底删除某个文件的全部log历史记录
  13. 流程帮App风险评估
  14. UltraISO制作CentOS 7.6 U盘引导安装盘
  15. IDEA去除自动检测bean是否存在
  16. 【Deep Hash】NINH
  17. C++语言实现-邻接矩阵
  18. python-django缓存
  19. 【python】flask 开启 debug 模式
  20. JDK,常见数据结构解读

热门文章

  1. Android实现控件动画效果
  2. html5新标签转
  3. sql 语句:给 text 数据类型排序
  4. win2008r2激活码
  5. cmd批处理常用符号详解
  6. MAC Java 开发环境配置
  7. SQL中CONVERT转化函数的用法
  8. Linux shell的标准输入、输出和错误
  9. .net 的一个分词系统(jieba中文分词的.NET版本:jieba.NET)
  10. ubuntu系统自带的火狐(firefox)如何安装Adobe Flash