使使用用动动画画实实现现微微信信读读书书的的换换一一批批效效果果(两两种种方方式式)
这篇文章主要介绍了使用动画实现微信读书的换一批效果,本文通过实例代码通过两种方式给大家介绍的非常详
细,对大家的学习 工作具有一定的参考借鉴价值,需要的朋友可以参考下
先来看看微信读书的效果
实现思思路路
这个效果比较简单,主要是旋转view,然后在旋转结束后更换view的背景,考虑到需要旋转view,所以使用动画来实
现
两两种种实现方方式式1.方方式式一一 使使用用ObjectAnimator结合合AnimatorSet
核心过程如下 :
创建布局,一个容器,四个view,过程简单,这里不做介绍
创建两个list,一个用来存放动画,一个用来存放view
使用ObjectAnimator创建四个动画,然后将动画放到list中
设置动画监听,动画结束时更换view背景
核心代码如下:
public void startAnimation01(){
animators.clear();
//创建四个动画,每个动画逆时针旋转180度
Animator animator01 = ObjectAnimator.of loat(imageView01,"RotationY",0,-180);
Animator animator02 = ObjectAnimator.of loat(imageView02,"RotationY",0,-180);
Animator animator03 = ObjectAnimator.of loat(imageView03,"RotationY",0,-180);
Animator animator04 = ObjectAnimator.of loat(imageView04,"RotationY",0,-180);
animators.add(animator01);
animators.add(animator02);
animators.add(animator03);
animators.add(animator04);
//循环中统一处理事件监听,动画结束时更换每个view的背景
for(int i=0;i
final int finalI = i;
animators.get(i).addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
//更换背景
imageViews.get(finalI).setBackgroundColor(Color.parseColor("# AEB9"));
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
}
AnimatorSet set = new AnimatorSet();
//集合中的动画会顺序执行
set.playSequentially(animators);
set.setStartDelay(200);
set.setDuration(300);
set.start();
}
2. 方方式式二二