Android帧动画与补间动画实战指南

1 下载量 18 浏览量 更新于2024-09-04 收藏 131KB PDF 举报
"本文将探讨Android平台上的两种基本动画类型——帧动画和补间动画,并提供相关的示例代码。首先,我们将关注帧动画(FrameAnimation),它通过按顺序播放一系列图片来实现动画效果。接着,我们将讨论补间动画,它是通过改变视图在屏幕上的位置、大小、透明度等属性来实现平滑过渡的动画。本文不涉及属性动画,这部分内容会在后续的文章中单独讲解。" 帧动画在Android中通常用于创建简单的连续播放的图像序列,如行走的人物或闪烁的灯光。要创建帧动画,你可以选择使用XML或者代码方式。XML方法是在res/drawable目录下创建一个animation-list文件。例如: ```xml <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@drawable/zzlx1" android:duration="100" /> <item android:drawable="@drawable/zzlx2" android:duration="100" /> <item android:drawable="@drawable/zzlx3" android:duration="100" /> </animation-list> ``` 在这个例子中,`android:oneshot`属性决定了动画是否只播放一次,`android:drawable`指定了每一帧的图片资源,而`android:duration`则设定了每帧持续的时间,影响动画的速度。 在Activity中,你需要获取这个XML文件对应的`AnimationDrawable`对象,并将其设置为ImageView的背景,然后通过调用`start()`和`stop()`方法来控制动画的播放与停止: ```java // 获取Frame动画文件对应的AnimationDrawable mAnimationDrawable = (AnimationDrawable) getResources().getDrawable(R.drawable.frame_animator); // 设置AnimationDrawable为图片的背景 imageView.setBackground(mAnimationDrawable); // 开始动画 mAnimationDrawable.start(); // 停止动画 mAnimationDrawable.stop(); ``` 补间动画(Tween Animation)则是通过改变View的属性,如平移、旋转、缩放和透明度,来实现更为复杂的视觉效果。补间动画可以通过`Animation`类的子类来创建,如`TranslateAnimation`、`RotateAnimation`、`ScaleAnimation`和`AlphaAnimation`。以下是一个简单的平移动画示例: ```xml <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0%" android:toXDelta="100%" android:fromYDelta="0%" android:toYDelta="0%" android:duration="1000" /> ``` 这个XML定义了一个从当前位置平移到右边100%的动画,持续时间为1000毫秒。在Activity中,你需要加载这个XML资源并将其应用到View上: ```java Animation translateAnim = AnimationUtils.loadAnimation(this, R.anim.translate_anim); imageView.startAnimation(translateAnim); ``` 补间动画可以组合使用,通过`set`或`animateTogether`方法创建更复杂的序列。同时,`Animation`类提供了`interpolator`属性,允许你自定义动画的时间插值器,以改变动画的速度曲线,比如加速或减速效果。 总结,帧动画适用于基于图像序列的动画,而补间动画则适合于平滑地改变View的属性。在Android中,两者都为开发者提供了丰富的动画设计能力,可以根据实际需求选择合适的方法。