module:animation1
最简单的属性动画
旋转180度
ObjectAnimator.ofFloat(view, "rotation", 0.0F, -180.0F).setDuration(500).start();
同时改变大小和透明度的动画
PropertyValuesHolder pvhX = PropertyValuesHolder.ofFloat("alpha", 1f,
0f, 1f);
PropertyValuesHolder pvhY = PropertyValuesHolder.ofFloat("scaleX", 1f,
0, 1f);
PropertyValuesHolder pvhZ = PropertyValuesHolder.ofFloat("scaleY", 1f,
0, 1f);
ObjectAnimator.ofPropertyValuesHolder(view, pvhX, pvhY, pvhZ).setDuration(1000).start();
动画拼接
2个动画拼接起来,第一个动画150ms,第二个动画50ms
PropertyValuesHolder pvhX = PropertyValuesHolder.ofFloat("alpha", 1f,
0f);
PropertyValuesHolder pvhY = PropertyValuesHolder.ofFloat("scaleX", 1f,
1.05f);
PropertyValuesHolder pvhZ = PropertyValuesHolder.ofFloat("scaleY", 1f,
1.05f);
PropertyValuesHolder pvhB = PropertyValuesHolder.ofFloat("Y", view.getY(),
view.getY() - 24);
ObjectAnimator anim = ObjectAnimator.ofPropertyValuesHolder(view, pvhX, pvhY, pvhZ, pvhB);
anim.setDuration(150);
PropertyValuesHolder pvhX1 = PropertyValuesHolder.ofFloat("alpha",
0f, 1f);
PropertyValuesHolder pvhY1 = PropertyValuesHolder.ofFloat("scaleX",
1.05f, 1);
PropertyValuesHolder pvhZ1 = PropertyValuesHolder.ofFloat("scaleY",
1.05f, 1);
PropertyValuesHolder pvhB1 = PropertyValuesHolder.ofFloat("Y",
view.getY() - 24, view.getY());
ObjectAnimator anim1 = ObjectAnimator.ofPropertyValuesHolder(view, pvhX1, pvhY1, pvhZ1, pvhB1);
anim.setDuration(50);
AnimatorSet animSet = new AnimatorSet();
animSet.play(anim1).after(anim);
animSet.start();
使用TranslationY
使用TranslationY而不是用getY,避免API LEVEL>11的限制 PropertyValuesHolder pvhX = PropertyValuesHolder.ofFloat("alpha", 1f,
0f, 1f);
PropertyValuesHolder pvhY = PropertyValuesHolder.ofFloat("scaleX", 1f,
8f, 1f);
PropertyValuesHolder pvhZ = PropertyValuesHolder.ofFloat("scaleY", 1f,
8f, 1f);
PropertyValuesHolder pvhB = PropertyValuesHolder.ofFloat("TranslationY", 0,
-24, 0);
ObjectAnimator anim = ObjectAnimator.ofPropertyValuesHolder(view, pvhB);
anim.setDuration(1000).start();
TranslateAnimation用法
TranslateAnimation animation = new TranslateAnimation(0, 0, 300, 300);
animation.setInterpolator(new LinearInterpolator());
animation.setDuration(1000);
view.startAnimation(animation);