Android API Guides---Animation Resources

动画资源

动画资源可以定义两种类型的动画中的一者:

属性动画

通过以上的时间的漫画家规定的期限修改对象的属性值创建一个动画。

观看动画

有两种类型的动画,你可以认为动画框架做的:

吐温动画:通过与动画的单个图像进行一系列的变换创建一个动画

帧动画:或通过示出,以便与一个AnimationDrawable图像的序列创建动画。

物业动画

在XML中定义的动画来修改目标对象的性质,例如背景颜色或阿尔法值,在设定的时间量。

文件位置:

RES /动画/ filename.xml中

文件名将用作资源ID。

编译的资源数据类型:

资源指针ValueAnimator,ObjectAnimator或AnimatorSet。

资源引用:

在Java:R.animator.filename

在XML:@ [包:]动画/文件名

句法:

<set
  android:ordering=["together" | "sequentially"]>

    <objectAnimator
        android:propertyName="string"
        android:duration="int"
        android:valueFrom="float | int | color"
        android:valueTo="float | int | color"
        android:startOffset="int"
        android:repeatCount="int"
        android:repeatMode=["repeat" | "reverse"]
        android:valueType=["intType" | "floatType"]/>

    <animator
        android:duration="int"
        android:valueFrom="float | int | color"
        android:valueTo="float | int | color"
        android:startOffset="int"
        android:repeatCount="int"
        android:repeatMode=["repeat" | "reverse"]
        android:valueType=["intType" | "floatType"]/>

    <set>
        ...
    </set>
</set>

该文件必须有一个根元素:要么<SET>,<objectAnimator>或<valueAnimator>。您可以将动画元素一起<设置>元素中,包括其他<set>元素。

ELEMENTS:

<set>

持有其他动画元素的容器(<objectAnimator>,<valueAnimator>或其他<设置>元素)。表示一个AnimatorSet。

您可以指定嵌套的<设置>标签来进一步群的动画在一起。每个<SET>可以定义自己的排序属性。

属性:

android:ordering

关键词。指定动画在此设置播放顺序。

值说明

顺序播放动画在这组顺序

together(默认值),同时在玩这一套动画。

<objectAnimator>

动画对象的结束时间的特定量的特定属性。表示一个ObjectAnimator。

属性:

android:propertyName

串。需要。该对象的属性进行动画,它的名字引用。例如,您可以指定一个视图对象“阿尔法”和“的backgroundColor”。该objectAnimator元素不暴露目标属性,但是,这样你就可以不设置在XML声明动画的对象。您可以通过调用loadAnimator(充气动画XML资源),并调用setTarget()来设置包含此属性的目标对象。

android:valueTo

float,int或颜色。. Required。其中动画属性的结束值。颜色被表示为六位十六进制数(例如,#333333)。

android:valueFrom

浮动,int或颜色。其中动画属性开始的值。如果没有指定,动画开始于由物业的get方法得到的值。颜色被表示为六位十六进制数(例如,#333333)。

android:duration

int类型。在动画毫秒的时间。 300毫秒是默认的。

android:startOffset

int类型。毫秒开始后动画延迟()的量被调用。

android:repeatCount

int类型。多少次重复的动画。设置为“-1”,以无限重复,或者一个正整数。例如,“1”值意味着动画动画的初始运行后重复一次,所以在动画中起着共两次。默认值是“0”,这意味着没有重复。

android:repeatMode

int类型。如何当到达动画结尾的动画表现。安卓的repeatCount必须被设置为正整数或“-1”这个属性有效果。设置为“反向”每次迭代具有动画相反方向或“重复”具有从每次开始动画循环。

android:valueType

关键词。如果值是颜色不指定此属性。动画框架自动处理颜色值

值说明

IntType上指定动画的值是整数

floatType(默认)指定动画的值是浮点数

<animator>

进行过指定的时间量的动画。代表ValueAnimator。

属性:

android:valueTo

float,int或颜色。需要。其中,动画结束的值。颜色被表示为六位十六进制数(例如,#333333)。

android:valueFrom

浮动,int或颜色。需要。其中动画的开始值。颜色被表示为六位十六进制数(例如,#333333)。

android:duration

int类型。在动画毫秒的时间。 300ms的是默认的。

android:startOffset

int类型。毫秒开始后动画延迟()的量被调用。

android:repeatCount

int类型。多少次重复的动画。设置为“-1”,以无限重复,或者一个正整数。例如,“1”值意味着动画动画的初始运行后重复一次,所以在动画中起着共两次。默认值是“0”,这意味着没有重复。

android:repeatMode

int类型。如何当到达动画结尾的动画表现。安卓的repeatCount必须被设置为正整数或“-1”这个属性有效果。设置为“反向”每次迭代具有动画相反方向或“重复”具有从每次开始动画循环。

android:valueType

关键词。如果值是颜色不指定此属性。动画框架自动处理颜色值。

值说明

IntType上指定动画的值是整数

floatType(默认)指定动画的值是浮点数

例:

在保存RES /动画/ property_animator.xml XML文件:

<set android:ordering="sequentially">
    <set>
        <objectAnimator
            android:propertyName="x"
            android:duration="500"
            android:valueTo="400"
            android:valueType="intType"/>
        <objectAnimator
            android:propertyName="y"
            android:duration="500"
            android:valueTo="300"
            android:valueType="intType"/>
    </set>
    <objectAnimator
        android:propertyName="alpha"
        android:duration="500"
        android:valueTo="1f"/>
</set>

为了运行这个动画,必须在代码中的AnimatorSet对象填充XML资源,然后开始动画集之前为所有动画的目标对象。调用设定目标()设置为AnimatorSet的所有子作为一种方便的单一目标对象。下面的代码演示如何做到这一点:

AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext,
    R.anim.property_animator);
set.setTarget(myObject);
set.start();

也可以看看:

物业动画

API演示了如何使用属性动画系统的例子。

观看动画

视图动画框架支持吐温和逐帧动画,可以在两个XML声明。下面的章节描述了如何使用这两种方法。

吐温动画

在XML中定义的动画执行过渡,例如旋转,衰落,移动和拉伸上的图形。

文件位置:

RES /动画/ filename.xml中

文件名将用作资源ID。

编译的资源数据类型:

资源指向一个动画。

资源引用:

在Java:R.anim.filename

在XML:@ [包:]动画/文件名

句法:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@[package:]anim/interpolator_resource"
    android:shareInterpolator=["true" | "false"] >
    <alpha
        android:fromAlpha="float"
        android:toAlpha="float" />
    <scale
        android:fromXScale="float"
        android:toXScale="float"
        android:fromYScale="float"
        android:toYScale="float"
        android:pivotX="float"
        android:pivotY="float" />
    <translate
        android:fromXDelta="float"
        android:toXDelta="float"
        android:fromYDelta="float"
        android:toYDelta="float" />
    <rotate
        android:fromDegrees="float"
        android:toDegrees="float"
        android:pivotX="float"
        android:pivotY="float" />
    <set>
        ...
    </set>
</set>

该文件必须有一个根元素:要么是<阿尔法>,<规模>,<翻译>,<旋转>或<set>元素持有其他动画元素的组(或组)(甚至嵌套的<设置>元素)。

ELEMENTS:

<set>

持有其他动画元素的容器(<alpha><scale><translate><rotate>)或其他<set>元素。表示一个AnimationSet。

属性:

android:interpolator

插补资源。内插器适用于动画。该值必须是一个指定的内插器(未内插器类名称)的资源的参考。有可从平台默认的内插资源,也可以创建自己的内插器的资源。请参见下面的讨论,更多的内插器。

android:shareInterpolator

布尔。 “真”,如果你想分享所有的子元素中相同的插补器。

<alpha>

淡入或淡出动画。表示一个AlphaAnimation。

属性:

android:fromAlpha

浮动。起始的不透明度偏置,其中0.0是透明,1.0是不透明的。

android:toAlpha

浮动。结束不透明度偏置,其中0.0是透明,1.0是不透明的。

对于由<阿尔法>支持更多的属性,看动画类引用(其中,所有XML属性由该元素inherrited)。

<scale>

一个伸缩动画。可以通过指定pivotX和pivotY指定从它向外(或向内)生长的图像的中心点。例如,如果这些值是0,0(左上角),所有增长将向下和向右。代表ScaleAnimation。

属性:

android:fromXScale

浮动。启动X尺寸偏差,其中1.0是没有任何变化。

android:toXScale

浮动。结束x尺寸偏差,其中1.0是没有任何变化。

android:fromYScale

浮动。起始Y尺寸偏差,其中1.0是没有任何变化。

android:toYScale

浮动。结束Y规格偏移,其中1.0是没有任何变化。

android:pivotX

浮动。的X坐标,以保持固定对象时缩放。

android:pivotY

浮动。的Y坐标,以保持固定对象时缩放。

对于由<scale>支持更多的属性,看动画类引用(其中,所有XML属性由该元素inherrited)。

<translate>

垂直和/或水平运动。支持在以下任何三种格式的以下属性:值从-100到100以“%”结尾,指示相对于本身的百分比;值从-100到100“%P”结尾,这表明相对于其父的百分比;一个浮点值,没有后缀,表示绝对值。代表TranslateAnimation。

属性:

android:fromXDelta

浮动或百分比。开始的X轴偏移。表示任一:在相对于正常位置的像素(例如“5”),在相对于该元件宽度百分比(例如,“5%”),或在相对百分比到母体宽度(例如「5%对“ )。

android:toXDelta

浮动或百分比。结束X轴偏移。表示任一:在相对于正常位置的像素(例如“5”),在相对于该元件宽度百分比(例如,“5%”),或在相对百分比到母体宽度(例如「5%对“ )。

android:fromYDelta

浮动或百分比。开始的Y轴偏移。表示任一:在相对于正常位置的像素(例如“5”),在相对于所述元件的高度的百分比(例如,“5%”),或在相对百分比到母体高度(例如“5%对” )。

android:toYDelta

浮动或百分比。结束Y轴偏移。表示任一:在相对于正常位置的像素(例如“5”),在相对于所述元件的高度的百分比(例如,“5%”),或在相对百分比到母体高度(例如“5%对” )。

对于由<translate>支持更多的属性,看动画类引用(其中,所有XML属性由该元素inherrited)。

<rotate>

一个旋转动画。代表RotateAnimation。

属性:

android:fromDegrees

浮动。开始角度位置,以度。

android:toDegrees

浮动。结束角度位置,以度。

android:pivotX

浮动或百分比。旋转中心的X坐标。表示任一:在相对于对象的左边缘像素(例如“5”),在相对于对象的左边缘百分比(例如,“5%”),或在相对百分比到父容器的左边缘(如“ 5%对“)。

android:pivotY

浮动或百分比。旋转中心的Y坐标。表示任一:在相对于对象的顶部边缘像素(例如“5”),在相对于物体的顶部边缘百分比(例如,“5%”),或在相对百分比到父容器的顶部边缘(如“ 5%对“)。

对于由<旋转>支持更多的属性,看动画类引用(其中,所有XML属性由该元素inherrited)。

例:

在保存RES /动画/ hyperspace_jump.xml XML文件:

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <scale
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:fromXScale="1.0"
        android:toXScale="1.4"
        android:fromYScale="1.0"
        android:toYScale="0.6"
        android:pivotX="50%"
        android:pivotY="50%"
        android:fillAfter="false"
        android:duration="700" />
    <set
        android:interpolator="@android:anim/accelerate_interpolator"
        android:startOffset="700">
        <scale
            android:fromXScale="1.4"
            android:toXScale="0.0"
            android:fromYScale="0.6"
            android:toYScale="0.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="400" />
        <rotate
            android:fromDegrees="0"
            android:toDegrees="-45"
            android:toYScale="0.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="400" />
    </set>
</set>

此应用程序代码将动画应用到的ImageView和启动动画:

ImageView image = (ImageView) findViewById(R.id.image);
Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
image.startAnimation(hyperspaceJump);

也可以看看:

2D图形:吐温动画

插值

内插器是在XML中,影响变化的动画中的速率限定的动画改性剂。这使得现有的动画效果加速,减速,反复,反弹等。

内插器被应用到了Android的动画元素:插值属性,它的值是内插器资源的引用。

在Android的所有可用插值是插值类的子类。对于每个插值类,Android包含您可以使用次序在android内插器应用到动画引用公共资源:插补属性。下表指定要用于每个插补器资源:

内插器类资源ID

AccelerateDecelerateInterpolator @android:动画/ accelerate_decelerate_interpolator

AccelerateInterpolator @android:动画/ accelerate_interpolator

AnticipateInterpolator @android:动画/ anticipate_interpolator

AnticipateOvershootInterpolator @android:动画/ anticipate_overshoot_interpolator

BounceInterpolator @android:动画/ bounce_interpolator

CycleInterpolator @android:动画/ cycle_interpolator

DecelerateInterpolator @android:动画/ decelerate_interpolator

LinearInterpolator @android:动画/ linear_interpolator

OvershootInterpolator @android:动画/ overshoot_interpolator

这里是你如何运用这些与Android之一:内插器属性:

<set android:interpolator="@android:anim/accelerate_interpolator">
    ...
</set>

自定义插值

如果你不满意的平台(上表中列出)提供的内插器,您可以创建修改的属性自定义资源的内插器。例如,可以调整加速度为预见插补的速度,或调整的周期数为周期插补。为了做到这一点,你需要在一个XML文件来创建自己的内插器的资源。

文件位置:

RES /动画/ filename.xml中

文件名将用作资源ID。

编译的资源数据类型:

资源指针到相应的内插的对象。

资源引用:

在XML:@ [包:]动画/文件名

句法:

<?xml version="1.0" encoding="utf-8"?>
<InterpolatorName xmlns:android="http://schemas.android.com/apk/res/android"
    android:attribute_name="value"
    />

如果不应用任何属性,那么你就会插功能完全一样的平台(表上面列出)提供的。

ELEMENTS:

请注意,每个插补实现,XML定义的时候,小写开头的名字。

<accelerateDecelerateInterpolator>

变化率开始,并结束缓慢但通过中间加速。

无属性。

<accelerateInterpolator>

变化率开始慢慢出来,再加速。

属性:

android:factor

浮动。加速度(默认为1)。

<anticipateInterpolator>

这种变化开始向后甩,然后向前。

属性:

android:tension

浮动。张力的量应用(默认为2)。

<anticipateOvershootInterpolator>

改变落后开始,甩向前和过冲的目标值,然后稳定在最终值。

属性:

android:tension

浮动。张力的量应用(默认为2)。

android:extraTension

浮动。由量乘以张力(默认为1.5)。

<bounceInterpolator>

变化反弹在末端。

无属性

<cycleInterpolator>

将重复周期的指定数目的动画。变化率遵循正弦模式。

属性:

android:cycles

整数。周期(默认为1)的数目。

<decelerateInterpolator>

变化率迅速开出,然后减速。

属性:

android:factor

浮动。减速度(默认为1)。

<linearInterpolator>

变化率是恒定的。

无属性。

<overshootInterpolator>

这种变化甩向前冲过最后一个值,然后回来。

属性:

android:tension

浮动。张力的量应用(默认为2)。

例:

在保存RES /动画/ my_overshoot_interpolator.xml XML文件:

<?xml version="1.0" encoding="utf-8"?>
<overshootInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
    android:tension="7.0"
    />

这个动画XML将运用插值:

<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@anim/my_overshoot_interpolator"
    android:fromXScale="1.0"
    android:toXScale="3.0"
    android:fromYScale="1.0"
    android:toYScale="3.0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="700" />

帧动画

在XML中定义的动画,显示图像在顺序的序列(如薄膜)。

文件位置:

RES /绘制/ filename.xml中

文件名将用作资源ID。

编译的资源数据类型:

资源指向一个AnimationDrawable。

资源引用:

在Java:R.drawable.filename

在XML:@ [包:] drawable.filename

句法:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot=["true" | "false"] >
    <item
        android:drawable="@[package:]drawable/drawable_resource_name"
        android:duration="integer" />
</animation-list>

ELEMENTS:

<animation-list>

需要。这必须是根元素。包含一个或多个<item>元素。

属性:

android:oneshot

布尔。 “真”,如果你想执行一次动画; “假”循环动画。

<item>

动画的单帧。必须是一个<动画列表>元素的子元素。

属性:

android:drawable

绘制资源。可绘制用于此框架。

android:duration

整数。持续时间显示此框架,以毫秒为单位。

例:

在保存RES /动画/ rocket.xml XML文件:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
    <item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
</animation-list>

此应用程序代码将设置动画为背景的视图,然后播放动画:

ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);

rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
rocketAnimation.start();
时间: 2024-12-13 20:25:43

Android API Guides---Animation Resources的相关文章

Android API Guides – Introduction to Android

Android介绍 声明: 本文由Gordon翻译 发布于www.dlvoice.com 欢迎转载,但请保留此声明 原文地址:http://developer.android.com/guide/index.html Android提供了丰富的应用框架以便用户能够创建使用Java的环境来在移动设备上开发有创新性的应用和游戏.Android API Guides文档将会详细描述如何使用Android不同API来开发应用. 假如你是Android开发的新手,最好首先了解一下下面列出的Android

android API Guides学习--Introduction(1)

android介绍: android提供了丰富的应用程序开发框架,它允许你在java语言环境中为移动设备创建独特的应用程序与环境. 1android应用程序提供多个入口点 android 应用程序是由不同的组件组合而成的,每个组件都被单独调用.activity组件提供一块屏幕作为使用者的界面.service独立的在幕后执行. 你可以使用intent类来实现组件的切换.也可以在一个app中多次调用同一个组件.例如在一个地图应用程序中显示地址的activity组件.该模型为一个单一的应用程序提供了多

Android API Guides –Device Compatibility

设备的兼容性 声明: 本文由Gordon翻译 发布于www.dlvoice.com 欢迎转载,但请保留此声明 原文地址:http://developer.android.com/guide/practices/compatibility.html Android可以运行在不同类型的设备上,从手机到平板以及电视都可以运行.这些不同的设备将为开发者提供大量的潜在用户.那么为了能够让你的应用在所有的设备上运行良好,你就需要接受一些特性的多样性以及提供一个不同屏幕配置的友好的用户接口. 为了达到这样的目

翻译Android API Guides: App Manifest

原文在这里:http://developer.android.com/guide/topics/manifest/manifest-intro.html *Manifest译作"清单",这里沿用英文便于理解,其它术语同理. **文中链接都会跳转到android开发者网站. App Manifest 每一个应用都必须在它的根目录有一份AndroidManifest.xml文件(必须使用这个名字).Android系统必须在运行应用的任何代码之前了解一些重要信息,这些信息就来自于这份mani

【Android API Guides 简译(一)】App Resourses--Overview

将数据与程序分开的原因,表面是为了独立的管理数据,深层原因是使App兼容不同的环境即使你的数据支持不同语言或者不同屏幕大小的特殊设备.这是非常且越来越重要的! 对于各种各样的资源,我们统一分成两种: 默认资源和针对不同环境的备选资源 举个例子,默认资源存放在res/layout/ directory下,针对于横摆方向的设备的备选资源存放在res/layout-land/ directory(横摆方向的设备的具体方式见图).当只有默认资源时,见图1.当设置了备选资源时,见图二,Android系统会

Android API Guides – Application Fundamentals

应用基础 声明: 本文由Gordon翻译 发布于www.dlvoice.com 欢迎转载,但请保留此声明 原文地址:http://developer.android.com/guide/components/fundamentals.html Android应用是用Java语言来开发的.Android的SDK工具将会把你的代码和数据以及资源文件编译到APK中,所谓的APK就是一个Android包,它是以.apk结尾的压缩包文件.APK文件包含了Android应用的所有部分,一个真正的Androi

Android API Guides---Property Animation

Property Animation 该属性动画系统是一个强大的框架,可以让您动画几乎任何事情.可以定义动画随时间而改变任何对象属性,无论它绘制到屏幕或没有.的属性动画改变属性的(一个字段中的对象),在指定的时间长度值.要动态的东西,你指定要进行动画处理,例如对象在屏幕上的位置,你要多久才能动画它,你想之间设置动画什么值的对象属性. 该物业动画系统允许您定义动画的以下特点: 持续时间:您可以指定动画的持续时间.默认长度为300毫秒. 时间插补:您可以指定该属性的值如何作为动画的当前运行时间的函数

【Android API Guides 简译(三)】Data Storage--Storage Options

Android提供了几种永久储存手机数据的选项,而我们选择存储的方式依据于我们存储的不同的特定需求,比如你的数据是否需要只对自己公开,数据是否可以被其他应用得到或者你想要储存多大的数据. 数据存储的方式如下: Shared Preferences 通过xml类型的键值对,存储私密的原始数据. Internal Storage 内部存储 通过手机内存存储私密数据 External Storage 外部存储 在设备外部共享里存储公开的数据 SQLite Databases Android 原生内部数

android API Guides学习--Introduction(2)

应用程序基本原理: android应用程序是用java语言编写的,android SDK工具在APK(Android package)里编译代码(数据文件和资源文件).apk是一个后缀为.apk的档案文件,1个apk文件包含了android应用程序的所有内容,apk是用来安装应用程序的基于android的设备.一旦安装了apk文件,每个app运行在自己安全的沙盒中. android操作系统是一个多用户的Linux操作系统,每一个app有一个不同的用户. 系统默认给各自的app分配一个唯一的Lin

android API Guides学习--Intent and Intent Filters

Intent是一个消息传递类,同时可以启动一些组件 作用: 1启动一个activity组件. 通过Context类的 startActivity()/ startActivity ()方法启动activity组件. 2启动一个service组件 通过Context类的startService()方法启动此组件,只能执行一次性操作(例如下载文件). 通过Context类的 bindService()方法 3发送一条广播 通过Context类的sendBroadcast(), sendOrdered