Android Animation学习

关于动画的实现,android提供了Animation,有两种Animation(动画)模式

1. Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果,即是一种渐变动画;

2. Frame Animation:顺序播放事先做好的图像,是一种画面转换动画。

动画类型:

Android的animation由四种类型组成

在XML文件中:

|--alpha    渐变透明度变化效果

|--scale    渐变尺寸伸缩动画效果

|--translate   画面转换位置移动动画效果

|--rotate   画面转移旋转动画效果

在android源码中定义的相关的类,可以实用这些类的方法来获取和操作相关的属性

Animation

|--AlphaAnimation渐变透明度动画效果

|--ScaleAnimation渐变尺寸伸缩动画效果

|--TranslateAnimation画面转换位置移动动画效果

|--RotateAnimation画面转移旋转动画效果

下面具体讲解一下一个图片旋转的具体实例

1、首先在XML文件中定义一个图片

<ImageView

android:layout_width="60dp"

android:layout_height="60dp"

android:id = "@+id/image_rotate"

android:src="@drawable/xuanyi"

android:layout_gravity="center"/>

2、新建一个XML文件定义rotate旋转效果

在res下新建一个名为anim的文件夹,在该文件夹下新建rotate.xml文件

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

<set xmlns:android="http://schemas.android.com/apk/res/android">

<rotate

android:fromDegrees = "0"

android:toDegrees="359"

android:duration="400"

android:repeatCount="-1"

android:pivotX="50%"

android:pivotY="50%"
>

<!--android:fromDegrees 起始的角度度数-->

<!--android:toDegrees 结束的角度度数,负数表示逆时针,正数表示顺时针-->

<!--android:duration 表示从android:fromDegrees转动到android:toDegrees所花费的时间,单位为毫秒。可以用来计算速度。-->

<!--android:repeatCount 重复的次数,默认为0,必须是int,可以为-1表示不停止-->

<!--android:pivotX 旋转中心的X坐标-->

<!--ndroid:pivotY 旋转中心的Y坐标-->

<!--其他资源可以去API中查找-->

</rotate>

</set>

3、建立Animation类的一个对象

//用AnimationUtils这个工具类加载XML文件,该方法返回一个Animation对象

Animation animaDemo = AnimationUtils.loadAnimation(this, R.anim.rotate);

/*An interpolator defines the rate of change of an animation.

This allows the basic animation effects (alpha, scale, translate, rotate) to be accelerated, decelerated, repeated, etc.

Interpolator是一个接口,用来定义动画改变的速度,旗下有5个实现类,分别为AccelerateDecelerateInterpolator,

AccelerateInterpolator, CycleInterpolator, DecelerateInterpolator, LinearInterpolator

LinearInterpolator为匀速效果,AccelerateInterpolator为加速效果、DecelerateInterpolator为减速效果

这里是设置了一个匀速的效果

interpolator表示变化率,但不是运行速度。一个插补属性,可以将动画效果设置为加速,减速,反复,反弹等。默认为开始和结束慢中间快,

*/

LinearInterpolator lin = new LinearInterpolator();

//设置该动画的速度,传入一个速度变化率

animaDemo.setInterpolator(lin);

4、在android代码中制定图片加入动画

//通过ID找到图片

imageRotate = (ImageView)findViewById(R.id.image_rotate);

//给图片加旋转的特技(动画)

imageRotate.startAnimation(animaDemos);

5、停止动画

animaDemo.clearAnimation();

参考资料:

http://blog.csdn.net/mengzhengjie/article/details/9674845

http://www.cnblogs.com/feisky/archive/2010/01/11/1644482.html

时间: 2024-08-14 10:17:20

Android Animation学习的相关文章

Android Animation学习(二) ApiDemos解析:基本Animatiors使用

Animator类提供了创建动画的基本结构,但是一般使用的是它的子类: ValueAnimator.ObjectAnimator.AnimatorSet ApiDemos中Animation部分是单独的一个包. 下面代码来自ApiDemos中的AnimationCloning类,加了一个使用ValueAnimator的动画,还有一些注释. 完整的项目见:URL:https://github.com/mengdd/AnimationApiDemos.git package com.example.

Android Animation学习笔记

关于动画的实现,Android提供了Animation,在Android SDK介绍了2种Animation模式: 1. Tween Animation:通过对场景里的对象不断做图像变换(平移.缩放.旋转)产生动画效果,即是一种渐变动画: 2. Frame Animation:顺序播放事先做好的图像,是一种画面转换动画. 动画类型 下面先来看看Android提供的动画类型.Android的animation由四种类型组成 在XML文件中: alpha        渐变透明度动画效果 scale

Android Animation学习(一) Property Animation介绍

Android Animation Android framework提供了两种动画系统: property animation (introduced in Android 3.0)和view animation. 除了这两种系统外,也可以利用Drawable animation,也就是播放序列帧图像. 所以,Android中的Animation分三种: 1. Property Animation 2. View Animation 3. Drawable Animation 下面主要说Pro

Android Animation学习(五) ApiDemos解析:容器布局动画 LayoutTransition

Property animation系统还提供了对ViewGroup中的View改变加入动画的功能. 你可以使用 LayoutTransition 对ViewGroup中的View改变进行动画显示. 注意,本文所说的动画效果都是设置给容器(ViewGroup),然而效果是通过容器存放的View来体现的. 四种容器转换动画类型 当你添加或者移除ViewGroup中的View时,或者你调用View的setVisibility()方法来控制其显示或消失时,就处于一个转换状态.这种事件就有可能会激发动画

Android Animation学习(六) View Animation介绍

View Animation View animation系统可以用来执行View上的Tween animation和Frame animation. Tween animation可以在View对象上执行一系列的简单变换,比如位置.尺寸.旋转.透明度等. animation package 包中包含了tween animation所有的类. 一系列的动画命令定义了一个完整的tween animation,可以用代码定义也可以用XML资源文件定义. XML资源文件 XML资源文件的使用可以见:A

Android Animation学习 实现 IOS 滤镜退出动画

IOS的用户体验做的很好,其中一点很重要的地方就是动画效果. 最近在学习Android的Animation,简单实现了一个IOS相机滤镜退出的动画: 布局文件:activity_animation_demo.xml  布局未考虑各个分辨率,只是为了实现动画逻辑,(代码测试是在720P分辨率的手机上) 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools=

Android Animation学习(三) ApiDemos解析:XML动画文件的使用

可以用XML文件来定义Animation. 文件必须有一个唯一的根节点: <set>, <objectAnimator>, or <valueAnimator>三者之一. 对应的Java类是: ValueAnimator - <animator> ObjectAnimator - <objectAnimator> AnimatorSet - <set> <set>标签是可以嵌套的. <set>标签的androi

Android Animation学习(四) ApiDemos解析:多属性动画

如果想同时改变多个属性,根据前面所学的,比较显而易见的一种思路是构造多个对象Animator , ( Animator可以是ValueAnimator.ObjectAnimator和AnimatorSet) 然后最后把它们放在一个AnimatorSet中. 另一种思路就是,把多个属性的改变放在同一个 ValueAnimator 中(ObjectAnimator也是 ValueAnimator). 而这就要借助PropertyValuesHolder.本文主要讲这种方法. PropertyValu

Android动画学习——Tween Animation

目录 目录 Android动画学习 Tween Animation scale动画调节尺寸 alpha动画调节透明度 rotate动画旋转 translate动画平移 Android动画学习 android中动画分为3种: Tween Animation:通过对场景里的对象不断做图像变换(平移.缩放.旋转)产生的动画效果,即是一种渐变动画. Frame Animation:顺序播放事先做好的图像,是一种画面转换动画. Property Animation:属性动画,通过动态地改变对象的属性从而达