记一次小白之路使用AndroidViewAnimations 安卓抖动动画

首先我要实现的是类似于这种动画

记一次小白之路使用AndroidViewAnimations 安卓抖动动画

 

参考过得文章:https://www.jianshu.com/p/7d262563edda

我是在这篇文章的评论中看到两位大佬的对话中,看到了AndroidViewAnimations。

Github地址:https://github.com/daimajia/AndroidViewAnimations

1:添加依赖

在项目的gradle中

dependencies {
        compile 'com.android.support:support-compat:X.X.X'   
        compile 'com.daimajia.easing:library:[email protected]'
        compile 'com.daimajia.androidanimations:library:[email protected]'
}

这里的版本号用你

com.android.support:appcompat 使用的版本即可。

注:1.在这可能会遇到 Could not resolve com.android.support:appcompat-v7 的问题,你去settings->Build,Execution,Deployment->Gradle,取消“offline work”的勾选,让studio去下载即可。注意后期最好在改回来,这可能会导致运行项目时gradle build running 很久.

           2.有些最新android studio可能会强制使用implementation,这里你用 compile Sync Now下载完后把compile改为implementation即可。

可能有些由于网络原因的你下载会很困难,这个请自行百度即可。

 

2:使用

YoYo.with(想要使用的动画mode)
.duration(持续时间)
.repeat(持续次数)
.pivot(YoYo.CENTER_PIVOT, YoYo.CENTER_PIVOT)
.interpolate(new AccelerateDecelerateInterpolator())
.withListener(new Animator.AnimatorListener() {
    @Override
    public void onAnimationStart(Animator animation) {

    }

    @Override
    public void onAnimationEnd(Animator animation) {
    }

    @Override
    public void onAnimationCancel(Animator animation) {
        
    }

    @Override
    public void onAnimationRepeat(Animator animation) {

    }
})
.playOn(想要使用动画的按钮view);

 

注:如果想要添加动画 在中间抖动的话只设置.pivot(YoYo.CENTER_PIVOT, YoYo.CENTER_PIVOT) 是不行的,还要设置

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    if (hasFocus) {
        rope = YoYo.with(Techniques.FadeIn).duration(时间).playOn(控件);// after start,just click mTarget view, rope is not init
    }

ps:部分手机可能出现抖动后留有屏幕残留情况,可能是屏幕渲染问题 使用invalidate()可以解决