Android Animation入门:Tween动画与Frame动画详解
"动画Animation-android入门到精通" 在Android平台上,动画主要分为两种类型:Tween动画和Frame动画。Tween动画通过一系列图形变换实现效果,包括平移、缩放、旋转和透明度变化。这种动画可以通过XML或编程方式定义。而Frame动画则是按顺序播放预先准备好的图像,类似于播放电影胶片。 对于Tween动画,Android提供了四种基本类型的动画: 1. 渐变透明度动画(AlphaAnimation),用于控制视图的透明度变化。 2. 渐变尺寸缩放动画(ScaleAnimation),用于改变视图的大小。 3. 画面位置移动动画(TranslateAnimation),使视图在屏幕上移动。 4. 画面旋转动画(RotateAnimation),使视图旋转。 例如,要实现一个ImageView的渐变尺寸缩放动画,首先在res/anim目录下创建一个XML文件,如`scale.xml`,内容如下: ```xml <set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:fromXScale="0.0" android:fromYScale="0.0" android:toXScale="5.0" android:toYScale="5.0" android:pivotX="50%" android:pivotY="50%" android:fillAfter="false" android:duration="5000"/> </set> ``` 其中,`interpolator`属性可以控制动画的速度曲线,如`accelerate_decelerate_interpolator`表示先加速后减速的效果。`fromXScale`和`fromYScale`定义动画开始时的缩放比例,`toXScale`和`toYScale`定义结束时的比例。`pivotX`和`pivotY`设定旋转或缩放的中心点,`duration`是动画的持续时间。 在布局文件(如`main.xml`)中,添加一个ImageView,并为其设置动画: ```xml <LinearLayout ...> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/icon" android:id="@+id/imageView" /> </LinearLayout> ``` 最后,在Activity中加载并启动动画: ```java public class AnimationActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageView imageView = (ImageView)findViewById(R.id.imageView); Animation animation = AnimationUtils.loadAnimation(this, R.anim.scale); imageView.startAnimation(animation); } } ``` 同样,这些动画效果也可以通过编程方式直接创建,例如: ```java ScaleAnimation animation = new ScaleAnimation(0.0f, 5f, 0.0f, 5f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); animation.setDuration(5000); imageView.startAnimation(animation); ``` 此外,Frame动画是通过顺序播放一系列图片实现动画效果。首先,将图片放入res/drawable文件夹,然后创建一个XML动画文件,如`animation_list.xml`,并指定图片序列。在代码中,可以使用AnimationDrawable类来控制动画的播放。 Android的动画系统为开发者提供了丰富的工具,可以创造出各种动态效果,增强了用户体验。无论是Tween动画还是Frame动画,都能为应用增添活力。
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/6e17a45f5c5e4d00a06ce6e020f0d265_weixin_42188512.jpg!1)
- 粉丝: 20
- 资源: 2万+
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 解决本地连接丢失无法上网的问题
- BIOS报警声音解析:故障原因与解决方法
- 广义均值移动跟踪算法在视频目标跟踪中的应用研究
- C++Builder快捷键大全:高效编程的秘密武器
- 网页制作入门:常用代码详解
- TX2440A开发板网络远程监控系统移植教程:易搭建与通用解决方案
- WebLogic10虚拟内存配置详解与优化技巧
- C#网络编程深度解析:Socket基础与应用
- 掌握Struts1:Java MVC轻量级框架详解
- 20个必备CSS代码段提升Web开发效率
- CSS样式大全:字体、文本、列表样式详解
- Proteus元件库大全:从基础到高级组件
- 74HC08芯片:高速CMOS四输入与门详细资料
- C#获取当前路径的多种方法详解
- 修复MySQL乱码问题:设置字符集为GB2312
- C语言的诞生与演进:从汇编到系统编程的革命
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)