Android-动画

渐变动画(Tweened View Animations):应用在View上,让你可以定义一系列动画改变(位置、大小、旋转、透明度).

帧动画(Frame Animations): 不同的图片,然后切换,形成动画。 该动画在View上显示,使用其画布。

 

渐变动画通常用在:

1.Activity之间的转换。

2.Activity中布局的转换。

3.View中不同内容的转换。

4.提供用户反馈,比如当用户输入错误的信息时,“振动”输入框。

其中主要包含4种类型:

1.AlphaAnimation  View的透明度改变。

2.RotateAnimation  View旋转。

3.ScaleAnimation View的缩放。

4.TranslateAnimation View的位置移动。

<set xmlns:android=”http://schemas.android.com/apk/res/android” 
      android:interpolator=”@android:anim/accelerate_interpolator”> 
   <scale 
     android:fromXScale=”0.0” android:toXScale=”1.0” 
     android:fromYScale=”0.0” android:toYScale=”1.0” 
     android:pivotX=”50%” 
     android:pivotY=”50%” 
     android:duration=”1000” 
   /> 
</set>

 

运用渐变动画:

这种动画默认只运行1次,然后就停掉了。除非你修改其默认的行为,通过setRepeatMode和setRepeatCount方法。你可以强制一个动画去循环或者重复反转通过标识(RESTART、REVERSE)。

还可以设置重复的次数!

myAnimation.setRepeatMode(Animation.RESTART); 
myAnimation.setRepeatCount(Animation.INFINITE); 
myView.startAnimation(myAnimation);

 

还可为渐变动画添加监听:

myAnimation.setAnimationListener(new AnimationListener() { 
  public void onAnimationEnd(Animation animation) { 
   // TODO Do something after animation is complete. 
  }

  public void onAnimationStart(Animation animation) { 
     // TODO Do something when the animation starts. 
  }

  public void onAnimationRepeat(Animation animation) { 
     // TODO Do something when the animation repeats. 
  } 
});

创建布局动画

此动画运用在ViewGroup上。

定义一个布局动画:

<layoutAnimation 
   xmlns:android=”http://schemas.android.com/apk/res/android” 
   android:delay=”0.5” 
   android:animationOrder=”random” 
   android:animation=”@anim/popin” 
/>

 

布局动画:

在布局(比如RelativeLayout的标签属性)的xml中:

android:layoutAnimation=”@anim/popinlayout”

在代码中设置布局动画,通过调用ViewGroup的setLayoutAnimation,传入一个LayoutAnimation对象。当ViewGroup刚被布置上的时候,触发1次动画。你可以强制再次执行当ViewGroup下次被布置,通过调用ViewGroup的scheduleLayoutAnimation布局动画也支持监听: 

aViewGroup.setLayoutAnimationListener(new AnimationListener() { 
   public void onAnimationEnd(Animation _animation) { 
     // TODO: Actions on animation complete. 
   } 
   public void onAnimationRepeat(Animation _animation) {} 
   public void onAnimationStart(Animation _animation) {} 
});

aViewGroup.scheduleLayoutAnimation();

 

创建帧动画

这个太简单了,直接看例子:(注意帧动画是Drawable对象是AnimationDrawable

<animation-list 
   xmlns:android=”http://schemas.android.com/apk/res/android” 
   android:oneshot=”false”> 
   <item android:drawable=”@drawable/rocket1” android:duration=”500” /> 
   <item android:drawable=”@drawable/rocket2” android:duration=”500” /> 
   <item android:drawable=”@drawable/rocket3” android:duration=”500” /> 
</animation-list> 


设置动画

ImageView image = (ImageView)findViewById(R.id.my_animation_frame); 
image.setBackgroundResource(R.drawable.animated_rocket);

 

启动动画:

AnimationDrawable animation = (AnimationDrawable)image.getBackground(); 
animation.start();

 

你可能感兴趣的:(动画,android)