Android-skin-support

ximsfei / Android-skin-support

Android-skin-support is an easy to use dynamic skin framework for Android, Only one line of code to integrate it.一款用心去做的Android 换肤框架, 极低的学习成本, 极好的用户体验. 一行代码就可以实现换肤, 你值得拥有!!!

3,742608

介绍:

Android 换肤框架, 极低的学习成本, 极好的用户体验. 只需要两行代码, 就可以实现换肤

运行效果:

使用说明:

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

第一行: 在Application的onCreate中初始化

 
  1. SkinCompatManager.init(this).loadSkin();

第二行: 继承自SkinCompatActivity

 
  1. public class BaseActivity extends SkinCompatActivity {}

就这么简单, 你的APK已经拥有了强大的换肤功能.

skin-app // 换肤demo app

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

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

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

目前支持:

  • 支持Android 4.x, 5.x, 6.x, 7.x

  • 支持自定义View换肤

  • skin-support: 基础控件 支持

    • View

    • Button

    • Spinner

    • SeekBar

    • CheckBox

    • EditText

    • TextView

    • RatingBar

    • ImageView

    • ProgressBar

    • ImageButton

    • RadioButton

    • FrameLayout

    • LinearLayout

    • RelativeLayout

    • CheckedTextView

    • AutoCompleteTextView

    • MultiAutoCompleteTextView

    • android.support.v7.widget.Toolbar

  • skin-support-design: material design 支持

    • TabLayout

    • AppBarLayout

    • NavigationView

导入:

 
  1. git clone https://github.com/ximsfei/Android-skin-support.git

选择需要的module依赖:

 
  1. // aar
  2. dependencies {
  3.     compile(name: 'skin-support-release', ext: 'aar') // Android 基础控件, 及V7包中的一些控件
  4.     compile(name: 'skin-support-design-release', ext: 'aar') // Android support design包中的一些控件
  5. }

或者

 
  1. dependencies {
  2.     compile project(':skin-support')
  3.     compile project(':skin-support-design')
  4. }

或者

 
  1. // 可以打开调试日志
  2. dependencies {
  3.     releaseCompile project(path: ':skin-support', configuration: 'release')
  4.     debugCompile project(path: ':skin-support', configuration: 'debug')
  5.     releaseCompile project(path: ':skin-support-design', configuration: 'release')
  6.     debugCompile project(path: ':skin-support-design', configuration: 'debug')
  7. }

初始化:

在Application的onCreate中初始化

 
  1. @Override
  2. public void onCreate() {
  3.     super.onCreate();
  4.     SkinCompatManager.init(this).loadSkin(); // 应用启动加载当前(保存在SharedPreferences中)皮肤库
  5. }

继承SkinCompatActivity

让所有需要换肤的Activity继承自skin.support.app.SkinCompatActivity.

 
  1. public class BaseActivity extends SkinCompatActivity {}

加载插件皮肤库

 
  1. // 指定皮肤插件, 并且监听加载状态
  2. SkinCompatManager.getInstance().loadSkin("new.skin");
  3.  
  4. // 恢复应用默认皮肤
  5. SkinCompatManager.getInstance().restoreDefaultTheme();

自定义View换肤

要点:

  1. 实现SkinCompatSupportable接口

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

  3. 在applySkin方法中实现换肤

制作皮肤插件:

新建Android application工程

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

打包生成apk, 即为皮肤包

最佳实践

仿网易云音乐皮肤切换

下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值