Android中的动画

https://developer.android.google.cn/training/animation/
HenCoder Android 自定义 View 1-6:属性动画 Property Animation(上手篇)
Android 动画总结 -

动画的分类

  • Animation
    • View Animation

      • Frame 帧动画。一张张单独的图片连贯的进行播放
      • Tween 补间动画。通过指定View的初末状态和变化方式,对View的内容完成一系列的图形变换来实现动画效果
        • TranslateAnimation 位移
        • ScaleAnimation 大小
        • RotateAnimation 选择
        • AlphaAnimation 透明度
    • Property Animation 属性动画,3.0引入,核心思想是对值的变化。

      • ViewPropertyAnimation
      • ObjectAnimation
  • Transition 切换界面时的动画效果

Frame Animation帧动画

Animation Drawable控制animation-list.xml布局,把一幅幅的图片按顺序显示,造成动画的视觉效果。



    
    
    

ImageView animationImg1 = (ImageView) findViewById(R.id.animation1);
animationImg1.setImageResource(R.drawable.frame_anim1);
AnimationDrawable animationDrawable1 = (AnimationDrawable)animationImg1.getDrawable();
animationDrawable1.start();

ViewPropertyAnimator

使用方法:
View.animate() 后跟 translationX() 等方法,动画会自动执行。
设置监听器:
ViewPropertyAnimator.setListener()
ViewPropertyAnimator.setUpdateListener()
withStartAction()//一次性
withEndAction()//只有在动画正常结束时才会被调用
移除监听器:
setListener(null)

gridView.animate().translationX(50).setListener(new Animator.AnimatorListener() {
            @Override
            public void onAnimationStart(Animator animation) {
                 当动画开始执行时
            }
            @Override
            public void onAnimationEnd(Animator animation) {
                    当动画结束时
            }
            @Override
            public void onAnimationCancel(Animator animation) {
                    当动画被通过 cancel()方法取消时(之后onAnimationEnd() 也会被调用)
            }
            @Override
            public void onAnimationRepeat(Animator animation) {
                    当动画通过 setRepeatMode() / setRepeatCount() 或 repeat() 方法重复执行时,                    这个方法被调用。由于 ViewPropertyAnimator 不支持重复,所以这个方法对                               ViewPropertyAnimator 相当于无效。
            }
        }).setUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                 当动画的属性更新时
            }
        })

ObjectAnimator

使用方式:
如果是自定义控件,需要添加 setter / getter 方法;
用 ObjectAnimator.ofXXX() 创建 ObjectAnimator 对象;
用 start() 方法执行动画。
设置监听器:
ObjectAnimator.addListener()
addPauseListener()
移除监听器:
removeListener();
removePauseListener()

你可能感兴趣的:(Android中的动画)