Android动画之一:Tween Animation(补间动画)示例详解

0 摘要

今天花了一天时间学习了Android动画的一种——View Animation(视图动画),好记性不如烂笔头,赶紧写篇博客记录下吧!动画的使用是Android开发中常用的知识,今天就和大家一起了解下。知识点新鲜出炉,欢迎大家交流研讨!
本篇博客除了简单介绍Android动画知识外,还会通过示例代码(注释很详细哦)重点介绍Tween Animation(补间动画)的使用方法及特点。

1 Android动画分类

Android中动画主要包括View Animation(视图动画)和Property Animation(属性动画,Android 3.0 后新增)两大类,其中View Animation又分为Tween Animation(补间动画)和Frame Animation( 帧动画),Tween Animation主要有AlphaAnimation(透明)、TranslateAnimation(平移)、RotateAnimation(旋转)和ScaleAnimation(缩放)4种。下图可以帮大家更快地了解Android动画的分类。
Android动画分类

2 Tween Animation

首先说下视图动画,顾名思义,View Animation只能应用于视图View上,而且只支持对整个视图进行操作,比如缩放旋转等。它并不改变View的属性,只是改变了View对象绘制的位置,并没有改变View对象本身。比如,你有一个屏幕左上角的Button,通过补间动画将其移动到右下角,动画过程中Button的可点击区域仍是左上角,因为实际上Button还是停留在屏幕左上角,补间动画知识改变了视觉效果而已。另外,它的动画效果单一,只能实现透明、平移、旋转和缩放这些简单的需求。
需要说明的是, Frame Animation(帧动画) 也属于视图动画,但是动画效果和补间动画(透明、平移、旋转和缩放)不太一样,我们会在下一篇博客单独讨论。下面,我们一起来探讨下 Tween Animation(补间动画) 的使用。文中示例是对一个居中显示的图片进行操作,MainActivity的布局文件如下(算了,不贴代码了,放个截图吧,有时间自己敲一下咯)。另外,你需要知道:Android坐标系原点为左上角,X、Y轴分别向右、向下为正。
activity_main.xml

2.1 AlphaAnimation

实现方式(补间动画均可以通过代码和Xml两种方式实现)。

2.1.1 实现方式

代码方式

	// 1.获取AlphaAnimation实例,传入起止透明度
        // 设置起止透明度,取值范围0~1(透明~不透明)
        float fromAlpha = 1.0f;
        float toAlpha = 0.5f;
        Animation animation = new AlphaAnimation(fromAlpha, toAlpha);

        // 2.设置动画时长,单位为毫秒
        animation.setDuration(3000);

        // 3.其他可选设置,xml都有对应的属性
        animation.setStartOffset(2000);// 设置动画开始延时,单位毫秒
        animation.setFillAfter(true);// 设置动画结束后保留最后状态
        animation.setRepeatCount(2);// 设置动画重复次数(默认为0,也就是说设置重复次数为n动画会播放n+1次),Animation.INFINITE无限播放
        animation.setRepeatMode(Animation.REVERSE);// 设置重复时播放的模式,Animation.RESTART(1):顺序播放;Animation.REVERSE(2):逆序播放
        // 设置为逆序播放时:首次顺序播放,第2次逆序播放,第3次顺序播放……

        // 4.开始动画
        mImageView.startAnimation(animation);
	
	// XML方式实现
        // loadAnimationFromXml(R.anim.view_animation_alpha);

Xml方式
右键res文件夹>New>Android Resource File>出现New Resource File对话框,File name自定义(如view_animation_alpha)、Resource Type选择Animation、Root element输入alpha(与动画效果对应),OK后res文件夹下自动创建了anim文件夹及其xml文件。
创建其他补间动画资源文件方式与此相同,后续不再赘述。
创建补间动画资源文件 view_animation_alpha.xmlview_animation_alpha.xml代码如下,其中属性与代码方式设置一一对应,可对比理解:

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
       android:fromAlpha="1.0"
       android:toAlpha="0.5"
       android:duration="3000"
       android:startOffset="2000"
       android:fillAfter="true"
       android:repeatCount="2"
       android:repeatMode="reverse">
    <!--fromAlpha和toAlpha取值范围0~1,0表示完全透明、1表示完全不透明-->
</alpha>

MainActivity调用代码如下:

   /**
     * 使用Xml生成动画
     * @param animResourceID 动画资源ID(例如R.anim.view_animation_alpha)
     */
    private void loadAnimationFromXml
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值