Android中主要有两种动画模式,一种是tweened animation(渐变动画),即通过对场景里的对象不断做图像变换产生动画效果;
另外一种是frame by frame(帧动画),即按照顺序播放事先配置好的动画帧
这里是tweened animation的例子,帧动画以前在J2ME也常用就不做分析
渐变动画有四种类型,alpha(透明度),scale(尺度伸缩),translate(位置变换)和rotate(图形旋转)。
准备一张图片放入资源文件夹里面
在res目录新建anim文件夹,并在该文件夹新建animation.xml文件,在该文件加入如下代码:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="8000"
/>
<!-- 透明度的变换 -->
<scale
android:interpolator= "@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="0.0"
android:toXScale="1.4"
android:fromYScale="0.0"
android:toYScale="1.4"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false"
android:duration="10000"
/>
<!-- 尺寸的变化 -->
<translate
android:fromXDelta="30"
android:toXDelta="0"
android:fromYDelta="30"
android:toYDelta="50"
android:duration="10000"
/>
<!-- 位置的变化 -->
<rotate
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromDegrees="0"
android:toDegrees="+350"
android:pivotX="50%"
android:pivotY="50%"
android:duration="10000"
/>
<!-- 旋转变化s -->
</set>
布局文件main.xml改为:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:id="@+id/myImageView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/luoli"
/>
</LinearLayout>
新建Activity类代码如下:
import android.app.Activity; //引入Activity类
import android.os.Bundle;//引入Bundle类
import android.view.animation.*;//引入Animation类
import android.widget.ImageView;//引入ImageView类
public class Animation extends Activity {
android.view.animation.Animation animation;//动画的引用
ImageView myImageView;//ImageView的引用
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {//重写的onCreate回调方法
super.onCreate(savedInstanceState);
setContentView(R.layout.main);//设置当前显示的View
animation= AnimationUtils.loadAnimation(this,R.anim.animation);//加载动画
myImageView = (ImageView) this.findViewById(R.id.myImageView);//得到ImageView的引用
myImageView.startAnimation(animation);//启动动画
}
}
执行效果如图:
本文详细介绍了Android中渐变动画(tweenedanimation)的概念及应用。包括透明度(alpha)、尺度伸缩(scale)、位置变换(translate)和图形旋转(rotate)四种类型的实现方式,并通过实例展示了如何创建和应用这些动画效果。

被折叠的 条评论
为什么被折叠?



