Skip to content
皮肤切换动画,支持全局View animation everywhere
Branch: master
Clone or download
Latest commit b0716bf Jul 9, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea udpate for ImageView Mar 1, 2017
app udpate for ImageView Mar 1, 2017
gif update Feb 28, 2017
gradle/wrapper init android-skin-support Jan 12, 2017
skin-app add some animator Feb 26, 2017
skin-night mipmap类资源换肤支持 Feb 24, 2017
skin-support-design TabLayout tabTextColor Jan 18, 2017
skin-support udpate for ImageView Mar 1, 2017
.gitignore init animator Feb 26, 2017
LICENSE init android-skin-support Jan 12, 2017
README.md Update README.md Jul 9, 2018
build.gradle init animator Feb 26, 2017
gradle.properties init android-skin-support Jan 12, 2017
gradlew init android-skin-support Jan 12, 2017
gradlew.bat init android-skin-support Jan 12, 2017
settings.gradle add gif Feb 27, 2017

README.md

换肤方案:

Android-skin-support

换肤时增加了动画

增加了一些View动画

全局动画

全局动画和换肤原理相同,直接替换了View组件,原理可以参考Android-skin-support

原理概述

了解过换肤框架的同学知道,利用setFactory(LayoutInflater inflater, LayoutInflaterFactory factory)可以在不更新布局文件的情况下替换布局中View为自定义View,并且对开发者透明。利用这个原理我们可以把原生的View替换为支持动画的View,如TexView在执行setText、setVisibility等操作时执行动画。

同时提供动画执行等开关,在需要时打开,在不需要时关闭即可。

使用说明

  • 1.继承SkinCompatActivity, 同时支持了换肤功能

  • 2.如果Activity需要支持全局动画,覆盖方法:

    @Override
    protected boolean needAnimator() {
        return true;
    }

如果不需要,则不用理会

  • 3.在Activity中设置动画配置:
        setAnimatorConfig(new AnimatorConfig
                .Builder()
                .textviewTextAnimationType(ViewAnimatorType.AlphaUpdateAnimator)
                .textviewVisibleAnimationType(ViewAnimatorType.TranslationAlphaHideAnimator)
                .build());

在其它地方设置配置:

AnimatorManager.setConfig(new AnimatorConfig.Builder()
                        .textviewVisibleAnimationType(ViewAnimatorType.TranslationAlphaHideAnimator)
                        .textviewTextAnimationType(ViewAnimatorType.AlphaUpdateAnimator)
                        .build());
  • 4.在需要的地方打开关闭动画:
AnimatorManager.openAnimator();

AnimatorManager.closeAnimator();

致谢

License MIT

You can’t perform that action at this time.