您当前的位置:首页 > 互联网教程

Android中的几种动画

发布时间:2025-05-13 02:47:55    发布人:远客网络

Android中的几种动画

一、Android中的几种动画

帧动画:指通过指定每一帧的图片和播放时间,有序的进行播放而形成动画效果,比如想听的律动条。

补间动画:指通过指定View的初始状态、变化时间、方式,通过一系列的算法去进行图形变换,从而形成动画效果,主要有Alpha、Scale、Translate、Rotate四种效果。注意:只是在视图层实现了动画效果,并没有真正改变View的属性,比如滑动列表,改变标题栏的透明度。

属性动画:在Android3.0的时候才支持,通过不断的改变View的属性,不断的重绘而形成动画效果。相比于视图动画,View的属性是真正改变了。比如view的旋转,放大,缩小。

二、如何在Android中自定义动画

①打开Eclipse,新建Android工程

③在anim目录中新建一个myanim.xml(注意文件名小写)

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="">

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="">

<!--透明度控制动画效果 alpha

fromAlpha属性为动画起始时透明度

以上值取0.0-1.0之间的float数据类型的数字

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="">

android:interpolator="@android:anim/accelerate_decelerate_interpolator"

属性:interpolator指定一个动画的插入器

在我试验过程中,使用android.res.anim中的资源时候发现

accelerate_decelerate_interpolator加速-减速动画插入器

accelerate_interpolator加速-动画插入器

decelerate_interpolator减速-动画插入器

fromXScale属性为动画起始时 X坐标上的伸缩尺寸

toXScale属性为动画结束时 X坐标上的伸缩尺寸

fromYScale属性为动画起始时Y坐标上的伸缩尺寸

toYScale属性为动画结束时Y坐标上的伸缩尺寸

pivotX属性为动画相对于物件的X坐标的开始位置

pivotY属性为动画相对于物件的Y坐标的开始位置

50%为物件的X或Y方向坐标上的中点位置

fillAfter属性当设置为true,该动画转化在动画结束后被应用

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="">

<!-- translate位置转移动画效果

fromXDelta属性为动画起始时 X坐标上的位置

toXDelta属性为动画结束时 X坐标上的位置

fromYDelta属性为动画起始时 Y坐标上的位置

toYDelta属性为动画结束时 Y坐标上的位置

没有指定fromXType toXType fromYType toYType时候,

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="">

<rotate android:interpolator="@android:anim/accelerate_decelerate_interpolator"

属性:interpolator指定一个动画的插入器

在我试验过程中,使用android.res.anim中的资源时候发现

accelerate_decelerate_interpolator加速-减速动画插入器

accelerate_interpolator加速-动画插入器

decelerate_interpolator减速-动画插入器

fromDegrees属性为动画起始时物件的角度

toDegrees属性为动画结束时物件旋转的角度可以大于360度

当角度为负数——表示逆时针旋转

当角度为正数——表示顺时针旋转

(负数from——to正数:顺时针旋转)

(负数from——to负数:逆时针旋转)

(正数from——to正数:顺时针旋转)

(正数from——to负数:逆时针旋转)

pivotX属性为动画相对于物件的X坐标的开始位置

pivotY属性为动画相对于物件的Y坐标的开始位置

说明:以上两个属性值从0%-100%中取值

50%为物件的X或Y方向坐标上的中点位置长整型值:

Button button=(Button)findViewById(R.id.ok)

button.setOnClickListener(new OnClickListener(){

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

findViewById(R.id.listView).startAnimation(animation);

三、android中的动画有哪几类,它们的特点和区别是什么

1、一种是tweened animation(渐变动画)

2、一种是frame by frame(逐帧动画)

3、渐变动画是通过改变view的大小、旋转的角度、透明度、位置来产生动画,可以控制动画的播放快慢以及加速度。

4、逐帧动画是用一组图片轮流绘制,产生动画的感觉。类似于gif图片。

5、渐变动画的所有操作是通过矩阵变换对同一个物体(绘制的一个view或者图片)进行操作产生动画。

6、而逐帧动画是多个物体(多张图片)进行绘制,可以说这多张图片是不相关的(从播放的角度来看只能说是内容相关)。