[关闭]
@ZeroGeek 2015-11-26T08:15:43.000000Z 字数 1813 阅读 637

从Zero学习Android动画(一)

android 每周主题

1. 引言

学习制作动画,以下给出个人观点(供参考):

Android动画类型

2. 动画基础

2.1 效果

2.2 要素

3. 实现方式

3.1 属性动画(Property Animation)初级实战

3.1.1 ValueAnimator

3.1.2 ObjectAnimator(继承至ValueAnimator)

示例:

  1. ObjectAnimator animator = ObjectAnimator.ofFloat(textview, "alpha", 1f, 0f, 1f);
  2. animator.setDuration(5000);
  3. animator.start();
其中"alpha"(透明度)可替换为:

3.1.3 组合动画 AnimatorSet

可以互相嵌套

  1. ObjectAnimator moveIn = ObjectAnimator.ofFloat(textview, "translationX", -500f, 0f);
  2. ObjectAnimator rotate = ObjectAnimator.ofFloat(textview, "rotation", 0f, 360f);
  3. ObjectAnimator fadeInOut = ObjectAnimator.ofFloat(textview, "alpha", 1f, 0f, 1f);
  4. AnimatorSet animSet = new AnimatorSet();
  5. animSet.play(rotate).with(fadeInOut).after(moveIn);
  6. animSet.setDuration(5000);
  7. animSet.start();

Animator监听器

  1. anim.addListener(new AnimatorListener() {
  2. @Override
  3. public void onAnimationStart(Animator animation) {
  4. }
  5. @Override
  6. public void onAnimationRepeat(Animator animation) {
  7. }
  8. @Override
  9. public void onAnimationEnd(Animator animation) {
  10. }
  11. @Override
  12. public void onAnimationCancel(Animator animation) {
  13. }
  14. });
  15. //或者,可只实现某一个接口
  16. anim.addListener(new AnimatorListenerAdapter() {
  17. });

xml实现

《animator> 对应代码中的ValueAnimator
《objectAnimator> 对应代码中的ObjectAnimator
《set> 对应代码中的AnimatorSet

加载xml动画:

  1. Animator animator = AnimatorInflater.loadAnimator(context, R.animator.anim_file);
  2. animator.setTarget(view);
  3. animator.start();

参考:

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注