Android换肤(一) — 应用内换肤

前言

若app具备换肤功能,势必给用户带来更好体验。那么,今天就给大家讲讲一款比较好用的第三方换肤库。

今天涉及内容:

  1. Android-skin-support库简介
  2. Android-skin-support库应用内换肤原理
  3. 库依赖
  4. 初始化及配置
  5. 应用内换肤的使用
    5.1 activity中设置皮肤功能
    5.2 某个控件不想使用皮肤资源的处理
    5.3 皮肤开关
    5.4 换肤示例源码
  6. 缺点
  7. 更多
  8. 效果图和项目结构图

先来波效果图


Android换肤(一) — 应用内换肤_第1张图片
1.gif

一. Android-skin-support库简介

Android-skin-support库是一款使用比较简单,覆盖换肤范围比较广的换肤库,可覆盖自定义控件,含第三方库换肤等功能。其版本可支持Android-supportAndroidX,但基于两种架构在依赖和初始化上略有不同。大部分项目都是AndroidX开发,那么今天就讲讲基于AndroidX版本的使用吧。

二.Android-skin-support库应用内换肤原理

大致是在项目src/main/下新建一个类似res的文件夹。假若你想给皮肤命名为night,则你此皮肤资源文件夹名则为res-night,整体项目目录为src/main/res-night,res-night文件夹与res文件夹并列,且res-night文件夹与res文件夹中资源目录架构一样,但是具体资源命名不同,res-night中需要加皮肤名后缀,如res/values/colors.xml中有个颜色值名称为main_test,则res-night//values/colors.xml中对应则有一个色值名称为main_test_night,然后main_test_night色值即为换肤后的色值,你根据需求字定义。
下图即为项目中resres-night文件夹架构

你可能感兴趣的