android的资源混淆和压缩工具,换肤框架
2017-08-18 11:34
253 查看
介绍一款可以对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
applySkin方法中实现换肤操作
在构造方法中解析出需要换肤的resId
自定义View可以直接继承自SkinCompatView, SkinCompatLinearLayout等已有控件eg: CustomTextView
不想继承自已有控件eg: CustomTextView2
需要换肤自定义属性// 需要换肤AutoCompleteTextView的R.attr.popupBackground属性eg: SkinCompatAutoCompleteTextView
需要使用第三方库控件怎么办// 需要使用https://github.com/hdodenhof/CircleImageView 控件, 并且要支持换肤eg: SkinCompatCircleImageView
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 appskin-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换肤
要点:实现SkinCompatSupportable接口applySkin方法中实现换肤操作
在构造方法中解析出需要换肤的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资源混淆打包工具
- 微信开源工具AndResGuard做Android资源混淆
- Android插件式换肤框架搭建 - 资源加载源码分析
- Android--资源混淆工具使用说明
- [置顶] Android资源混淆工具使用说明
- 安装包立减1M--微信Android资源混淆打包工具
- Mac下使用微信Android资源混淆打包工具
- Android资源混淆打包工具
- 使用微信开源工具AndResGuard做Android资源混淆
- Android 资源混淆工具
- Android资源混淆打包工具
- android代码混淆压缩、资源压缩全解析
- 安装包立减1M--微信Android资源混淆打包工具
- 微信Android资源混淆打包工具,如何让应用安装包立减1M
- 安装包立减1M--微信Android资源混淆打包工具
- Android资源混淆打包工具 - 让你的资源瘦瘦身
- 安装包立减1M--微信Android资源混淆打包工具
- Android资源管理框架(Asset Manager)简要介绍和学习计划
- Android打包混淆压缩
- Luban(鲁班) —— Android图片压缩工具,仿微信朋友圈压缩策略。