介绍一款可以对android资源进行压缩的工具,超好用(已经在项目中使用到)

https://github.com/shwenzhang/AndResGuard

Android-skin-support: 一款用心去做的Android 换肤框架, 极低的学习成本, 极好的用户体验. 一行代码就可以实现换肤, 你值得拥有!!

  • 介绍
  • 更新日志
    • skin-support 更新日志
    • skin-support-design 更新日志
    • skin-support-cardview 更新日志
    • skin-support-constraint-layout 更新日志
  • 框架用法
    • 导入
    • 使用
      • 初始化
      • 皮肤开关
      • 加载插件皮肤库
      • 自定义view换肤
    • 制作皮肤插件
      • 新建皮肤工程
      • 添加皮肤资源
      • 生成皮肤插件
  • 第三方控件适配库
    • hdodenhof/CircleImageView
    • H07000223/FlycoTabLayout
    • hongyangAndroid/AndroidAutoLayout
  • LICENSE

介绍

Android-skin-support: 一款用心去做的Android 换肤框架, 极低的学习成本, 极好的用户体验.

只需要一行代码, 就可以实现换肤, 你值得拥有!!!

SkinCompatManager.withoutActivity(this).loadSkin();

就这么简单, 你的APK已经拥有了强大的换肤功能, 当然现在是拥有了换肤功能, 别忘了制作皮肤包.

skin-app // 换肤demo app

skin-night // 换肤demo 夜间模式

skin-support // 换肤框架, 基础控件支持

skin-support-design // 换肤框架, Material Design 支持

用法

导入:

直接添加依赖, 最新版本选择, 请查看更新日志

compile 'skin.support:skin-support:2.0.4'          // skin-support 基础控件支持
compile 'skin.support:skin-support-design:1.2.4'   // skin-support-design material design 控件支持[可选]
compile 'skin.support:skin-support-cardview:1.2.0' // skin-support-cardview CardView 控件支持[可选]
compile 'skin.support:skin-support-constraint-layout:1.0.2' // skin-support-constraint-layout ConstraintLayout 控件支持[可选]

使用:

在Application的onCreate中初始化

@Override
public void onCreate() {super.onCreate();SkinCompatManager.withoutActivity(this)                 // 基础控件换肤初始化.addInflater(new SkinMaterialViewInflater())    // material design 控件换肤初始化[可选].addInflater(new SkinConstraintViewInflater())  // ConstraintLayout 控件换肤初始化[可选].addInflater(new SkinCardViewInflater())        // CardView v7 控件换肤初始化[可选].loadSkin();
}

皮肤开关

如果项目中有特殊需求。例如, 股票控件: 控件颜色始终为红色或绿色, 不需要随着模式切换而换肤

那么可以使用类似的方法, 直接设置color值

setTextColor(0xce3d3a) // 不支持换肤
textColor="#ce3d3a"

而不是使用R.color.red

setTextColor(R.color.red)
textColor="@color/red"

加载插件皮肤库

// 指定皮肤插件
SkinCompatManager.getInstance().loadSkin("new.skin"[, SkinLoaderListener]);// 恢复应用默认皮肤
SkinCompatManager.getInstance().restoreDefaultTheme();

自定义View换肤

要点:

  1. 实现SkinCompatSupportable接口

  2. applySkin方法中实现换肤操作

  3. 在构造方法中解析出需要换肤的resId

  • 自定义View可以直接继承自SkinCompatView, SkinCompatLinearLayout等已有控件

    eg: CustomTextView

  • 不想继承自已有控件

    eg: CustomTextView2

  • 需要换肤自定义属性

    // 需要换肤AutoCompleteTextView的R.attr.popupBackground属性

    eg: SkinCompatAutoCompleteTextView

  • 需要使用第三方库控件怎么办

    // 需要使用https://github.com/hdodenhof/CircleImageView 控件, 并且要支持换肤

    eg: SkinCompatCircleImageView

制作皮肤插件:

新建Android application工程

皮肤工程包名不能和宿主应用包名相同.

例如:

宿主包名: com.ximsfei.skindemo
夜间模式: com.ximsfei.skindemo.night

将需要换肤的资源放到res目录下(同名资源)

例如 APK中窗口背景颜色为

colors.xml

<color name="background">#ffffff</color>

那么夜间模式你可以在skin-night工程中设置

colors.xml

<color name="background">#000000</color>

打包生成apk, 即为皮肤包

将打包生成的apk文件, 重命名为'xxx.skin', 防止apk结尾的文件造成混淆.

android的资源混淆和压缩工具,换肤框架相关推荐

  1. Android 手写实现插件化换肤框架 兼容Android10 Android11

    目录 一.收集所有需要换肤的view及相关属性 二.统一为所有Activity设置工厂(兼容Android9以上) 三.加载皮肤包资源 四.处理支持库或者自定义view的换肤 五.处理状态栏换肤 六. ...

  2. Android换肤功能实现与换肤框架QSkinLoader使用方式介绍

    框架地址:https://github.com/qqliu10u/QSkinLoader 效果图 https://github.com/qqliu10u/QSkinLoader/raw/master/ ...

  3. Android-skin-support 一款用心去做的Android 换肤框架

    介绍 Github地址: https://github.com/ximsfei/Android-skin-support Android-skin-support: 一款用心去做的Android 换肤 ...

  4. Android通过Hook技术实现一键换肤

    目录 1.什么是一键换肤 2.界面上那些东西可以换肤 3.利用Hook实现一键换肤 4.Android创建视图源码分析 4.1.自定义Activity设置要显示的布局文件xml 4.2.调用兼容App ...

  5. android 换肤框架搭建及使用 (3 完结篇)

    本系列计划3篇: Android 换肤之资源(Resources)加载(一) setContentView() / LayoutInflater源码分析(二) 换肤框架搭建(三) - 本篇 tips: ...

  6. android 第三方登录界面,Android App集成第三方登录与换肤指南

    Android App集成第三方登录与换肤指南 文档编辑 概述 本文主要是介绍了如何通过开源框架快速支持QQ和微信登录,并介绍了如何实现app快速换肤 QQ登录接入 APP要支持QQ登录,需要先到腾讯 ...

  7. 插件式换肤框架搭建 - 资源加载源码分析

    资源加载源码分析 1.首先我们来看一下ImageView是如何加载资源的: public ImageView(Context context, @Nullable AttributeSet attrs ...

  8. 换肤框架Android-Skin-Support问题记录

    换肤框架Android-Skin-Support问题记录 换肤框架Android-Skin-Support问题记录 换肤框架Android-Skin-Support问题记录 换肤框架使用 问题 1:其 ...

  9. 红橙Darren视频笔记 换肤框架4 换肤的功能完善 内存泄漏分析

    上一篇完成了换肤框架的基本搭建,这一次 我们继续补完上一次遗留的一些可以完善的部分 1.完善换肤 1.1退出后再进入应用 不会丢失上一次保存的皮肤 基本原理:将上一次切换的皮肤path保存在Share ...

最新文章

  1. web app开发技巧总结
  2. 【BZOJ5461】 【PKUWC2018】—Minimax(线段树合并优化dp)
  3. Hibernate一对多单向关联和双向关联映射方法及其优缺点
  4. Golang之Go Module使用
  5. android 系统ui修改器,分享两个效果 - Android 系统 UI 管理
  6. c语言中调试时go的作用,C语言调用GO
  7. Oracle B-tree、位图、全文索引三大索引性能比较及优缺点汇总(转载)
  8. mysql负载均衡分区_分区和负载均衡让MySQL更大更好
  9. 反射根据每一列的列名获取List T 中的列值
  10. [sql]匹配标题中出现最多关键字的结果
  11. 3D视频的质量评价报告 (MSU出品)
  12. Atitit 资源清理之道与gc之道 gc算法 清理临时表 临时资源 使用的算法类型是 引用计数(reference counting),基于时间过期自动清理资源 1. 3.1. 从各种
  13. elasticsearch使用3:配置同义词词库、ik分词器扩展字典和扩展停止词字典
  14. Linux 内核经典面试题
  15. CentOS安装YAPI
  16. 第二章 计算机的运算方法
  17. ionic 构建 Cannot load gulp tasks: Error: Error in module: .\gulpfile.js:
  18. Android开门动画和关门动画的实现
  19. 为什么深圳成指关注度远远小于上证指数?
  20. k2677场效应管参数引脚_场效应管k790参数

热门文章

  1. 【宋红康 MySQL数据库】【02】MySQL基本使用
  2. 用计算机根据日期怎么算年限,电脑excel表格如何按照签订合同的日期和年限来计算到期日...
  3. c语言迷宫游戏的选题背影,【参赛作品】迷宫游戏(6918,完结)
  4. 游戏建模师很抢手吗?
  5. 计算机专业允许纹身吗,考事业单位有纹身没事吧??
  6. 第一颗国产HDMI 2.0 至双端口 MIPI DSI/CSI,带音频LT6911UXE 芯片
  7. 最新安卓手机游戏下载排行榜前十名
  8. 16岁的博士----神童还是悲剧?
  9. 联发科营收复苏,但重回辉煌不容易
  10. SQL进阶挑战(MySQL为例)