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


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

https://github.com/shwenzhang/AndResGuard





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


介绍

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

制作皮肤插件:

新建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结尾的文件造成混淆.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值