您的位置 首页 > 数码极客

android开发框架—android混合开发框架…

《GitHub精选》是我们分享Github中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是 Android-skin-support: 一款 Android 换肤框架, 极低的学习成本, 极好的用户体验.

介绍

此框架只需要一行代码便能实现换肤

SkinCom(this).loadSkin();

主要功能

  • 支持布局中用到的资源换肤。
  • 支持代码中设置的资源换肤。
  • 默认支持大部分基础控件,Material Design换肤。
  • 支持动态设置主题颜色值,支持选择sdcard上的图片作为drawable换肤资源。
  • 支持多种加载策略(应用内/插件式/自定义sdcard路径/zip等资源等)。
  • 资源加载优先级: 动态设置资源-加载策略中的资源-插件式换肤/应用内换肤-应用资源。
  • 支持定制化,选择需要的模块加载。
  • 支持矢量图(vector/svg)换肤。
  • skin-support 4.0.0以上支持AndroidX,4.0.0以下支持support库

使用

1.导入

support library :如果项目中还在使用support库,添加以下依赖

implementation '; // skin-support 基础控件支持 implementation '; // skin-support-design material design 控件支持[可选] implementation '; // skin-support-cardview CardView 控件支持[可选] implementation '; // skin-support-constraint-layout ConstraintLayout 控件支持[可选]

在Application的onCreate中初始化

@Override public void onCreate() { (); SkinCom(this) // 基础控件换肤初始化 .addInflater(new SkinMaterialViewInflater()) // material design 控件换肤初始化[可选] .addInflater(new SkinConstraintViewInflater()) // ConstraintLayout 控件换肤初始化[可选] .addInflater(new SkinCardViewInflater()) // CardView v7 控件换肤初始化[可选] .setSkinStatusBarColorEnable(false) // 关闭状态栏换肤,默认打开[可选] .setSkinWindowBackgroundEnable(false) // 关闭windowBackground换肤,默认打开[可选] .loadSkin(); }

如果项目中使用的Activity继承自AppCompatActivity,需要重载getDelegate()方法

@NonNull @Override public AppCompatDelegate getDelegate() { return SkinA(this, this); }

AndroidX support:如果项目中使用了AndroidX, 添加以下依赖

implementation '; // skin-support implementation '; // skin-support 基础控件支持 implementation '; // skin-support-design material design 控件支持[可选] implementation '; // skin-support-cardview CardView 控件支持[可选] implementation '; // skin-support-constraint-layout ConstraintLayout 控件支持[可选]

在Application的onCreate中初始化

@Override public void onCreate() { (); SkinCom(this) .addInflater(new SkinAppCompatViewInflater()) // 基础控件换肤初始化 .addInflater(new SkinMaterialViewInflater()) // material design 控件换肤初始化[可选] .addInflater(new SkinConstraintViewInflater()) // ConstraintLayout 控件换肤初始化[可选] .addInflater(new SkinCardViewInflater()) // CardView v7 控件换肤初始化[可选] .setSkinStatusBarColorEnable(false) // 关闭状态栏换肤,默认打开[可选] .setSkinWindowBackgroundEnable(false) // 关闭windowBackground换肤,默认打开[可选] .loadSkin(); }

如果项目中使用的Activity继承自AppCompatActivity,需要重载getDelegate()方法

@NonNull @Override public AppCompatDelegate getDelegate() { return SkinA(this, this); }

开启

皮肤开关

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

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

setBackgroundDrawable(redDrawable) // 不支持换肤 background="#ce3d3a"

加载插件皮肤库

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

更多功能:

1.支持自定义皮肤

2.支持应用内换肤

3.支持插件式换肤

4.支持动态设置资源等

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“android开发框架,android混合开发框架,android开发框架有哪些”边界阅读