Giter Club home page Giter Club logo

android-skin-support's Introduction

Android-skin-support

v1.0.1 v0.0.2

介绍

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

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

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

SkinCompatManager.init(this).loadSkin();

第二行: 继承自SkinCompatActivity

public class BaseActivity extends SkinCompatActivity {}

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

skin-app // 换肤demo app

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

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

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

更新日志

skin-support: 基础控件 支持

  • v1.0.1 支持所有基础控件换肤
    • 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 支持

  • v0.0.2 支持以下三个控件换肤
    • TabLayout
    • AppBarLayout
    • NavigationView

最佳实践

仿网易云音乐

仿网易云音乐皮肤切换

仿网易云音乐应用下载

red 1 red 2 red 3

white 1 white 2 white 3

night 1 night 2 night 3

Testin 测试结果: Testin

用法

导入:

可以直接下载源码, 选择需要的module依赖:

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

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

compile 'skin.support:skin-support:1.0.1'        // skin-support 基础控件支持
compile 'skin.support:skin-support-design:0.0.2' // skin-support-design material design 控件支持

使用:

在Application的onCreate中初始化

@Override
public void onCreate() {
    super.onCreate();
    SkinCompatManager.init(this).loadSkin(); // 应用启动时初始化换肤框架并且加载当前(保存在SharedPreferences中)皮肤库
}

继承SkinCompatActivity

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

public class BaseActivity extends SkinCompatActivity {}

加载插件皮肤库

// 指定皮肤插件
SkinCompatManager.getInstance().loadSkin("new.skin"[, SkinLoaderListener]);

// 恢复应用默认皮肤
SkinCompatManager.getInstance().restoreDefaultTheme();

自定义View换肤

要点:

  1. 实现SkinCompatSupportable接口
  2. 在构造方法中解析出需要换肤的resId
  3. 在applySkin方法中实现换肤

制作皮肤插件:

新建Android application工程

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

例如 APK中窗口背景颜色为

colors.xml

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

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

colors.xml

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

打包生成apk, 即为皮肤包

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

交流&支持

加群交流

如有任何疑问, 可扫码加入QQ群进行技术交流:

QQ群二维码

打赏支持

如果觉得换肤框架很好用, 对您有所帮助, 请随意打赏, 或者分享转发给更多朋友.

您的支持与认可, 将使我在开源的道路上越走越远, 谢谢您!

支付宝扫码打赏

支付宝

微信扫码打赏

微信

致谢

android-skin-support's People

Contributors

ximsfei avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.