android中Animation框架定义了透明度,旋转,缩放,位移几种常见的动画。
视图动画使用简单,效果丰富,它提供了AlphaAnimation、RotateAnimation、TranslateAnimation、ScaleAnimation四种动画方式,它提供了AnimationSet动画集合,混合使用多种动画。
接下来列举几个事例:
透明度动画:
AlphaAnimation aa = new AlphaAnimation(0, 1); aa.setDuration(1000);//设置时间 view.startAnimation(aa);旋转动画:
RotateAnimation ra = new RotateAnimation(0, 360, RotateAnimation.RELATIVE_TO_SELF, 0.5f, RotateAnimation.RELATIVE_TO_SELF, 0.5f); ra.setDuration(1000); view.startAnimation(ra);位移动画:
TranslateAnimation ta = new TranslateAnimation(0, 200, 0, 300); ta.setDuration(1000); view.startAnimation(ta);缩放动画:
ScaleAnimation sa = new ScaleAnimation(0, 1, 0, 1, ScaleAnimation.RELATIVE_TO_SELF, 0.5f, ScaleAnimation.RELATIVE_TO_SELF, 0.5f); sa.setDuration(1000); view.startAnimation(sa);动画集合:
AnimationSet as = new AnimationSet(true); as.setDuration(1000); ScaleAnimation sa = new ScaleAnimation(0, 1, 0, 1, ScaleAnimation.RELATIVE_TO_SELF, 0.5f, ScaleAnimation.RELATIVE_TO_SELF, 0.5f); sa.setDuration(1000); as.addAnimation(sa); AlphaAnimation aa = new AlphaAnimation(0, 1); aa.setDuration(1000); as.addAnimation(aa); view.startAnimation(as);动画监听器:
as.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { } @Override public void onAnimationRepeat(Animation animation) { } });
通过这个监听器可以获取到动画的开始、结束和重复事件。
animation.setFillAfter(true);动画结束后保持当时的状态