Skip to content

CJavaScala/androidSkinChange

 
 

Repository files navigation

SkinChange

Android换肤, 基于插件式的资源切换方案

#特点

  1. 插件换肤
  2. 浸入性低
  3. 支持重启或者不重启Activity

#缺陷

  1. 已创建的Activity自动替换资源不支持如下操作:
    • 在代码中动态设置View的background, ImageView的src, TextView的textColor, drawableLeft等
    • 在代码中通过new View()生成的视图
  2. 不支持layout资源切换, 即layout资源只会使用app内自带的资源文件
  3. 不支持drawable中xml类型资源的切换, 不同版本间同一个xml文件不得修改
  4. 不支持padding, margin, textSize等类型的资源切换
  5. 获取LayoutInflater必须使用Activity.getLayoutInflater

#使用方法 ##集成

  1. 添加依赖文件:
    dependencies {
    compile 'com.cantalou:android-skin-change:1+@aar'
    }

  2. 代码集成的两种方式:
    2.1 在BaseActivity(项目所有Activity的父类)或者所有的Activity的中添加如下代码:
    @Override
    protected void onCreate() {
    SkinManager.getInstance().onAttach(this);
    super.onCreate();
    }

    @Override
    protected void onDestroy() {
    SkinManager.getInstance().onDestroy(this);
    super.onDestroy();
    }

    2.2 在自定义的Application的onCreate中添加如下代码:
    SkinManager.getInstance().initByReplaceInstrumentation(this);

3.使用方式
SkinManager.getInstance().changeResources(activityInsatance, "/filepath/red.apk");

#效果 image #实现原理 通过替换Activity的mResources和mTheme两个属性
http://blog.csdn.net/cantalou/article/details/49708469

About

Android换肤, 基于插件式的资源切换方案

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%