Android帧动画与补间动画实战指南
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中,两者都为开发者提供了丰富的动画设计能力,可以根据实际需求选择合适的方法。
2020-09-02 上传
2018-05-07 上传
2018-05-17 上传
2024-06-25 上传
2023-10-04 上传
2023-06-28 上传
2023-05-18 上传
2024-09-10 上传
2023-05-18 上传
weixin_38688956
- 粉丝: 4
- 资源: 967
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦