Android的SDK提供了三种类型的动画,分别是补间动画、逐帧动画和插值属性动画。下面先介绍第一种动画效果-补间动画。

补间动画可以应用于View,让开发者可以定义一些关于大小、位置、旋转和透明度的改变效果,达到让View的内容动起来的效果。

补间动画是使用Animation类创建的,它有4个直接子类,分别实现不同的动画效果,分别为:

AlphaAnimation 渐变透明度动画效果,即淡入淡出效果
ScaleAnimation 渐变尺寸伸缩动画效果,即缩放效果
TranslateAnimation 画面转换位置移动动画效果,移动效果
RotateAnimation 画面转移旋转动画效果,即旋转效果

要使用补间动画的效果,有两种方法,第一种是在XML文件中设置动画效果;第二种是在Java代码中设置。下面分别介绍这两种方法:

1.在XML文件中设置方式:

在Android项目的res目录下新建anim文件夹,然后在anim文件夹下新建firstanim.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="3000"
/>
<!-- 透明度控制动画效果 alpha fromAlpha 为动画起始时透明度
toAlpha 为动画结束时透明度
取值说明: 0.0表示完全透明,1.0表示完全不透明,以上值取0.0-1.0之间的float数据类型的数字 duration 为动画持续时间,时间以毫秒为单位
--> <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="700" /> <!-- 尺寸伸缩动画效果 scale
interpolator 指定一个动画的插入器
几种简单的动画插入器:
accelerate_decelerate_interpolator 先加速后减速,开始结束时慢,中间加速
accelerate_interpolator 加速,开始时慢中间加速
decelerate_interpolator 减速,开始时快然后减速
LinearInterpolator        线性,线性均匀改变 fromXScale 为动画起始时 X坐标上的伸缩尺寸
toXScale 为动画结束时 X坐标上的伸缩尺寸 fromYScale 为动画起始时Y坐标上的伸缩尺寸
toYScale 为动画结束时Y坐标上的伸缩尺寸
以上四种属性值说明: 0.0表示收缩到没有
1.0表示正常无伸缩
值小于1.0表示收缩
值大于1.0表示放大 pivotX 为动画相对于物件的X坐标的开始位置
pivotY 为动画相对于物件的Y坐标的开始位置
以上两个属性值 从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置 duration 为动画持续时间,时间以毫秒为单位 fillAfter 当设置为true ,控件停放在动画结束的位置
--> <translate
android:fromXDelta="30"
android:toXDelta="-80"
android:fromYDelta="30"
android:toYDelta="300"
android:duration="2000"
/>
<!-- translate 位置转移动画效果 fromXDelta 为动画起始时 X坐标上的位置
toXDelta 为动画结束时 X坐标上的位置
fromYDelta 为动画起始时 Y坐标上的位置
toYDelta 为动画结束时 Y坐标上的位置
没有指定fromXType toXType fromYType toYType 时候,默认是以自己为相对参照物 duration 动画持续时间,时间以毫秒为单位
--> <rotate
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromDegrees="0"
android:toDegrees="+350"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000" />
<!-- rotate 旋转动画效果
interpolator 指定一个动画的插入器
fromDegrees 为动画起始时控件的角度
toDegrees 为动画结束时物件旋转的角度 可以大于360度
当角度为负数——表示逆时针旋转
当角度为正数——表示顺时针旋转
负数from——to正数:顺时针旋转)
(负数from——to负数:逆时针旋转)
(正数from——to正数:顺时针旋转)
(正数from——to负数:逆时针旋转) pivotX 为动画相对于物件的X坐标的开始位置
pivotY 为动画相对于物件的Y坐标的开始位置
以上两个属性值 从0%-100%中取值
duration 为动画持续时间,时间以毫秒为单位
-->
</set>

在Activity中的onCreate()方法中,获取在XML中配置的动画效果,代码如下:

Animation animation= AnimationUtils.loadAnimation(this,R.anim.firstanim);

如果这个动画效果使用在一个ImageView上,可以参考如下代码:

imageView.startAnimation(animation);

2.在Java代码中设置方式:

以AlphaAnimation为例,

//首先声明Animation的一个对象
private Animation alpha; //在Activity的onCreate()方法中实例化这个对象
alpha=new AlphaAnimation(0.1f, 1.0f); //设置动画持续时间为3秒 alpha.setDuration(3000);

如果这个动画效果使用在一个ImageView上,可以参考如下代码:

imageView.startAnimation(alpha);

Android-补间动画效果的更多相关文章

  1. android 补间动画和Animation

    介绍: 补间动画是一种设定动画开始状态.结束状态,其中间的变化由系统计算补充.这也是他叫做补间动画的原因. 补间动画由Animation类来实现具体效果,包括平移(TranslateAnimation ...

  2. android 补间动画

    android开发过程中,为了更好的展示应用程序,应用程序添加动画,能够很好地实现这个功能.如果动画中的图像变化有一定的规律,可以采用自动生成图像的方式来生成动画,例如图像的移动.旋转.缩放等.自动生 ...

  3. Android补间动画笔记

    布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns: ...

  4. (原)android补间动画(四)之插补器Interpolator

    比如说一段旋转动画 RotateAnimation animation = new RotateAnimation(0, 360, mMoveCircle.getMeasuredWidth() / 2 ...

  5. ListView的淡入淡出和Activity的淡入淡出补间动画效果Animation

    //=========主页面======================= package com.bw.lianxi7; import android.os.Bundle;import androi ...

  6. Android补间动画、帧动画和属性动画使用知识介绍

    https://blog.csdn.net/zhangqunshuai/article/details/81098062

  7. Android开发(26)--补间动画(Tween)的实现

    补间动画(Tween Animation) 补间动画与逐帧动画在本质上是不同的,逐帧动画通过连续播放图片来模拟动画的效果,而补间动画则是通过在两个关键帧之间补充渐变的动画效果来实现的.补间动画的优点是 ...

  8. View动画(补间动画)

    补间动画的属性 Animation的属性 JAVA方法 XML属性 解释 setDetachWallpaper(boolean) android:detachWallpaper 是否在壁纸上运行 se ...

  9. Android动画效果之Tween Animation(补间动画)

    前言: 最近公司项目下个版本迭代里面设计了很多动画效果,在以往的项目中开发中也会经常用到动画,所以在公司下个版本迭代开始之前,抽空总结一下Android动画.今天主要总结Tween Animation ...

  10. Android 深入ViewPager补间动画,实现类京东商城首页广告Banner切换效果

    如有转载,请声明出处: 时之沙: http://blog.csdn.net/t12x3456 某天看到京东商城首页的滑动广告的Banner,在流动切换的时候有立体的动画效果,感觉很有意思,然后研究了下 ...

随机推荐

  1. java web 前端页面的分页逻辑

    <div class="divBody"> <div class="divContent"> <!--上一页 --> < ...

  2. select 中使用 case when 和 replace

    在SELECT中,用CASE   例如:     select   a.Cname   as   Tcomname,b.Cname   as   TGoodname,D.nQuanty,c.cNote ...

  3. Linux下安装并破解StarUML

    下载 官网地址: http://starumlreleases-7a0.kxcdn.com/v2.7.0/StarUML-v2.7.0-64-bit.deb CSDN: http://download ...

  4. Migration of ASP.NET app from IIS6 to IIS7 (7.5)

    For many of us familiar problem. You developing applications under IIS6 and you're about to move the ...

  5. 多线程(Thread),其实很简单!

    目录:  1:线程简介 2:怎么操作线程      3:Thread的常用方法 4:简单的获奖机     5:应用程序域   线程:是Windows任务调度的最小单位.线程是程序中的一个执行流,每个线 ...

  6. 25、Javascript 事件

    Javascript 事件 是指 Javascript 捕获到用户的操作,并做出正确的相应. Javascript 事件一般与DOM元素绑定. Javascript处理事件的基本机制 1.对DOM元素 ...

  7. [访问系统] C#计算机信息类ComputerInfo (转载)

    下载整个包,只下载现有类是不起作用的 http://www.sufeinet.com/thread-303-1-1.html 点击此处下载 using System; using System.Man ...

  8. 使用dojo遮罩加载进度。

    使用dojox.widget.Standby来实现类似视频缓冲加载时候转圈的效果.

  9. AUTOTRACE Statistics常用列解释

    AUTOTRACE Statistics常用列解释 序号 列名 解释 1 db block gets 从buffer cache中读取的block的数量 2 consistent gets 从buff ...

  10. shell脚本学习之Bash shell 里各种括号的用法

    今天在 SegmentFault 上看到又有人问起关于Shell里各种括号的问题.对于很多玩Shell的人,括号是个很尴尬的问题,用起来没问题,说起来不明白,我在这里总结一下Bash Shell几种括 ...