Android——Animation

Android中的动画:

一、分类:TweenAnimation(补间动画)和FrameAnimation(帧动画)。

  1. TweenAnimation,通过对图像不断做变换产生动画效果,是一种渐变效果;

    AlphaAnimation:透明度渐变;

    ScaleAnimation:尺寸缩放;

    TranslateAnimation:移动

    RotateAnimation:旋转

  2. FrameAnimation:顺序播放事先做好的图像是一种转换动画;

二、属性简介:

  1. TweenAnimation共同属性:

android:duration [long] :动画持续的时间;

android:fillAfter [boolean]:视图停在动画结束的位置,但是真正的位置仍然是布局中给定位置;

android:fillBefore[boolean]:视图停在动画开始的位置;

android:interpolator :指定一个动画的插入器,常用的插入器有:

accelerater_decelerate_interpolator:加速-减速 动画插入器

accelerater_interpolator:加速动画插入器;

deceleratr_interpolator:减速动画插入器;

android:repeatCount[int]:动画重复次数,-1表示无限循环;

android:repeatMode[int]:定义动画重复的行为,1,从起点重新开始;2,从结束位置开始相反执行;

android:startOffset[long]:动画之间的时间间隔,从上次动画停多少时间开始执行下个动画;

android:zAdjustment[int]:定义动画的Z order的改变,0:保持Z Order不变;1:保持在最上层;-1保持在最下层;(????待验证)

1.1 AlphaAnimation

xml中定义

<!-- 	<alpha android:fromAlpha="" 开始时的透明度,0.0-1.0 -->
<!-- 	    android:toAlpha="" 结束时的透明度 0.0-1.0 -->
<!-- 	    android:duration="" 动画持续的时间 /> -->

代码中定义:

//fromAlpha:开始时的透明度,toAlpha:结束时的透明度
		AlphaAnimation alpha = new AlphaAnimation(fromAlpha, toAlpha);
		//设置动画持续的时间
		alpha.setDuration(durationMillis);

1.2 ScaleAnimation

xml

<!-- <scale  -->
<!--     android:fromXScale="" 动画起始时X坐标上的伸缩尺寸-->
<!--     android:toXScale="" 动画结束时X坐标上的伸缩尺寸-->
<!--     android:fromYScale="" 动画起始时Y轴上的伸缩尺寸-->
<!--     android:toYScale="" 动画结束时Y轴上的伸缩尺寸-->
<!--     android:pivotX="" 动画相对于物件的X坐标的开始位置-->
<!--     android:pivotY="" 动画相对与物件Y坐标的开始位置-->
<!--     /> -->

代码中

ScaleAnimation scale = new ScaleAnimation(fromX, toX, fromY, toY);

1.3 TranslateAnimation

xml

    <translate
        android:fromXDelta="0%" //x轴起始位置
        android:pivotX="0%" //动画相对于物件X坐标的开始位置
        android:pivotY="0%"//动画相对于物件Y坐标的开始位置
        android:toXDelta="30%" //x轴的结束位置
        android:fromYDelta="0%" //y轴起始位置
        android:toYDelta="0%" //y轴结束位置
        android:duration="10000"/>

代码中:

TranslateAnimation anim = new TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta)

1.4 RotateAnimation

xml

    <!-- <rotate -->
    <!-- android:fromDegrees="" 动画起始时物件的角度 -->
    <!-- android:toDegrees="" 动画结束时物件旋转的角度 -->
    <!-- 角度为负表示逆时针旋转,角度为正表示顺时针旋转 -->
    <!-- android:pivotX="" 动画相对于物件X坐标的开始位置 -->
    <!-- android:pivotY="" 动画相对与物件Y坐标的开始位置 -->
    <!-- android:duration="" 动画运行时间/> -->

代码:

		ScaleAnimation anim = new ScaleAnimation(fromX, toX, fromY, toY)

2.xml定义动画在activity中的使用:

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

3.插值器的使用

Interpolator对象 资源ID 功能作用
AccelerateDecelerateInterpolator @android:anim/accelerate_decelerate_interpolator 先加速再减速
AccelerateInterpolator @android:anim/accelerate_interpolator 加速
AnticipateInterpolator @android:anim/anticipate_interpolator 先回退一小步然后加速前进
AnticipateOvershootInterpolator @android:anim/anticipate_overshoot_interpolator 在上一个基础上超出终点一小步再回到终点
BounceInterpolator @android:anim/bounce_interpolator 最后阶段弹球效果
CycleInterpolator @android:anim/cycle_interpolator 周期运动
DecelerateInterpolator @android:anim/decelerate_interpolator 减速
LinearInterpolator @android:anim/linear_interpolator 匀速
OvershootInterpolator @android:anim/overshoot_interpolator 快速到达终点并超出一小步最后回到终点

4.FrameAnimation:帧动画

添加图片,按照添加图片的顺序播放;

		AnimationDrawable anima = new AnimationDrawable();
		anima.addFrame(drawable1, duration1);
		anima.addFrame(drawable2, duration2);
		anima.addFrame(drawable3, duration3);
		anima.addFrame(drawable4, duration4);
		view.setBackgroudDrawable(anima);
时间: 2024-08-26 12:48:47

Android——Animation的相关文章

Android Animation 动画Demo(Frame逐帧动画)

上一篇介绍了Animation动画其一:Tween补间动画. 这篇文章接下来介绍Animation另一种动画形式:Frame逐帧动画. Frame动画是一系列图片按照一定的顺序展示的过程,和放电影的机制很相似,我们称为逐帧动画.Frame动画可以被定义在XML文件中,也可以完全编码实现(后面会给出这两种实现方式的源代码Demo). 下面分别介绍: 一.定义在xml中实现: 实现效果图: 源代码: 布局文件:main.xml: <?xml version="1.0" encodin

Android Animation动画(很详细)

http://www.360doc.com/content/13/0102/22/6541311_257754535.shtml Android Animation动画(很详细),布布扣,bubuko.com

[转]Android Animation

3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中又引入了一个新的动画系统:property animation,这三种动画模式在SDK中被称为property animation,view animation,drawable animation. 1. View Animation(Tween Animation) View Animation(Tween Animation):补间动画,给出两个关键帧,通过一

Android Animation动画详解(二): 组合动画特效

前言 上一篇博客Android Animation动画详解(一): 补间动画 我已经为大家介绍了Android补间动画的四种形式,相信读过该博客的兄弟们一起都了解了.如果你还不了解,那点链接过去研读一番,然后再过来跟着我一起学习如何把简单的动画效果组合在一起,做出比较酷炫的动画特效吧. 一. 动画的续播 如题,大家想想,如果一个页面上包含了许多动画,这些动画要求按顺序播放,即一个动画播放完成后,继续播放另一个动画,使得这些动画具有连贯性.那该如何实现呢? 有开发经验或者是逻辑思维的人肯定会想,对

Android Animation 动画

动画类型 Android的animation由四种类型组成  Android动画模式 Animation主要有两种动画模式:一种是tweened animation(渐变动画) XML中 JavaCode alpha AlphaAnimation scale ScaleAnimation 一种是frame by frame(画面转换动画) XML中 JavaCode translate TranslateAnimation rotate RotateAnimation 如何在XML文件中定义动画

Android Animation动画实战(一): 从布局动画引入ListView滑动时,每一Item项的显示动画

前言: 之前,我已经写了两篇博文,给大家介绍了Android的基础动画是如何实现的,如果还不清楚的,可以点击查看:Android Animation动画详解(一): 补间动画 及 Android Animation动画详解(二): 组合动画特效 . 已经熟悉了基础动画的实现后,便可以试着去实现常见APP中出现过的那些精美的动画.今天我主要给大家引入一个APP的ListView的动画效果: 当展示ListView时,Listview的每一个列表项都按照规定的动画显示出来. 说起来比较抽象,先给大家

Android Animation简述

Android Animation简述 一.动画(Animation) Android框架提供了两种动画系统:属性动画(Android3.0)和视图动画.同时使用两种动画是可行的,但是一般首选使用属性动画,因为它更灵活.提供更多功能.除了这两种动画,你也可使用绘制动画——允许你加载drawable 资源并逐帧显示. 视图动画只能用于View对象,所以如果你想要实现非View对象的动画,你必须用自己的代码去实现.实际上,视图动画仍是有局限性的,只能实现View的部分动画.例如,你可以实现View的

Android - Animation(二)

Android - Animation(一) 一文总结了Android中的补间动画(View Animation/Tween Animation)和帧动画(Drawable Animation/Frame Animation)的使用 本篇文章主要解析属性动画(Property Animation,android3.0引入)的实现原理                                               下篇   属性动画的实现原理 先来看属性动画的最简单实现: 第一种方式:

Android Animation 动画属性

在 Android 中, Animation 动画效果的实现可以通过两种方式进行实现: 一种是 tweened animation 渐变动画,另一种是 frame by frame animation 补间(画面转换)动画. tweened animation 渐变动画有以下两种类型: 1.alpha   渐变透明度动画效果 2.scale   渐变尺寸伸缩动画效果 frame by frame animation 画面转换动画有以下两种类型: 1.translate  画面转换位置移动动画效果

Android Animation 动画Demo

本文主要介绍Android中的Animation动画. Android提供了2中动画:Tween动画和Frame动画. 本文中主要讲解Tween动画,下篇文章中会讲到Frame动画. Tween动画: 通过对View的内容进行一系列的图形变换(包括平移,缩放,旋转,改变透明度)来实现动画的效果,动画效果的定义可以采用XML方式也可以采用编码来做Tween动画(文章最后会给出两种方式动画的源代码Demo). 动画的类型 Xml定义动画使用的配置节点 编码定义动画使用的类 渐变透明度动画效果(简称透