首先我要实现的是类似于这种动画
参考过得文章: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:2.0@aar'
compile 'com.daimajia.androidanimations:library:2.3@aar'
}
这里的版本号用你
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()可以解决
【记一次小白之路使用AndroidViewAnimations 安卓抖动动画】
推荐阅读
- Android属性动画上手实现各种动画效果,自定义动画,抛物线等
- Android动画|Android动画-属性动画-ViewPropertyAnimator
- Android动画系列|Android动画篇(五)—— 属性动画ObjectAnimator基本使用
- Android动画系列|Android动画篇(二)—— 代码实现alpha、scale、translate、rotate、set及插值器动画
- Android属性动画之XML定义方式
- Android Recycleview与AnimatorSet实现画廊中卡片翻转效果
- android开发(安卓动画之属性动画(一))
- android动画之属性动画
- android动画