本系列文章主要是对一个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. Android图片加载后变小
  2. Docker+Jenkins持续集成环境(5): android构建与apk发布
  3. 添加白名单功能
  4. android values-v11和values-v14文件夹是干啥的?
  5. linux/android mk文件
  6. android屏幕适配布局和字体
  7. Android实现的ListView分组布局改进示例
  8. Android(安卓)adb的权限问题(可以不通过adb,而直接访问.db文件)
  9. Ubuntu Linux14 64位下在Android(安卓)studio下用gradle编译Andr

随机推荐

  1. ffmpeg htc
  2. 【Android布局】在程序中设置android:gra
  3. android添加触摸事件
  4. Android(安卓)Developers_DRM
  5. 第一章:hello,Android
  6. Android布局文件中的属性含义
  7. ch010 Android(安卓)GridView
  8. understanding android build layer · D
  9. Android横竖屏切换总结(Android资料收藏)
  10. android体系架构