Android资源类型之Animation

来源:互联网 发布:淘宝装修自定义源代码 编辑:程序博客网 时间:2024/06/04 19:35

Android的Resource Types说的是:保存在res/anim,res/drawable,res/color,res/layout,res/menu,res/values目录下的文件所涉及的类型。本文只讲Animation.

Animation Resources
Define pre-determined animations.
Tween animations are saved in res/anim/ and accessed from the R.anim class.
Frame animations are saved in res/drawable/ and accessed from the R.drawable class.
Color State List Resource
Define a color resources that changes based on the View state.
Saved in res/color/ and accessed from the R.color class.
Drawable Resources
Define various graphics with bitmaps or XML.
Saved in res/drawable/ and accessed from the R.drawable class.
Layout Resource
Define the layout for your application UI.
Saved in res/layout/ and accessed from the R.layout class.
Menu Resource
Define the contents of your application menus.
Saved in res/menu/ and accessed from the R.menu class.
String Resources
Define strings, string arrays, and plurals (and include string formatting and styling).
Saved in res/values/ and accessed from the R.stringR.array, and R.plurals classes.
Style Resource
Define the look and format for UI elements.
Saved in res/values/ and accessed from the R.style class.
More Resource Types
Define values such as booleans, integers, dimensions, colors, and other arrays.
Saved in res/values/ but each accessed from unique R sub-classes (such as R.boolR.integerR.dimen, etc.).


Animation Resources

1、分类

Animation分两类:Property Animation和View Animation。

Property Animation通过修改一个对象的属性值来实现动画,用到的是 Animator 类。

View Animation:其又定义了两种动画框架:Tween animation和Frame animation。

    Tween Animation针对单一图片执行各类转换操作来实现动画,用到的是Animation类。

    Frame Animation通过一组图片按一定顺序展示来实现动画,用到的是AnimationDrawable类。


2、Animator与Animation抽象类的继承关系:

Animator        AnimatorSet        ValueAnimator                ObjectAnimator                TimeAnimator
Animation        ScaleAnimation        TranslateAnimation        AlphaAnimation        RotateAnimation        AnimationSet


3、XML属性规范

Property Animation:

文件位置:res/animator/filename.xml

资源类型: ValueAnimatorObjectAnimator, or AnimatorSet

资源引用:In Java: R.animator.filename In XML: @[package:]animator/filename

语法:

<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>, or <animator>

<set> 代表 AnimatorSet.

<objectAnimator> 代表 ObjectAnimator.

<animator> 代表 ValueAnimator.

另,AnimatorSet调用范例(ObjectAnimator与ValueAnimator调用类似):

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


View Animation

Tween Animation:

文件位置:res/anim/filename.xml

资源类型: Animation的子类:ScaleAnimation、TranslateAnimation、AlphaAnimation、RotateAnimation or AnimationSet.

资源引用:In Java: R.anim.filename In XML: @[package:]anim/filename

语法:

<?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>
注:根节点必须为<alpha><scale><translate><rotate>, or<set>

<alpha> 代表 AlphaAnimation.

<scale> 代表 ScaleAnimation.

<translate> 代表 TranslateAnimation.

<rotate> 代表 RotateAnimation.

<set> 代表 AnimationSet.

另,AnimationSet调用范例(其他Animation调用一致):

ImageView image = (ImageView) findViewById(R.id.image);Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);image.startAnimation(hyperspaceJump);
系统提供的加速器:

Interpolator classResource IDAccelerateDecelerateInterpolator@android:anim/accelerate_decelerate_interpolatorAccelerateInterpolator@android:anim/accelerate_interpolatorAnticipateInterpolator@android:anim/anticipate_interpolatorAnticipateOvershootInterpolator@android:anim/anticipate_overshoot_interpolatorBounceInterpolator@android:anim/bounce_interpolatorCycleInterpolator@android:anim/cycle_interpolatorDecelerateInterpolator@android:anim/decelerate_interpolatorLinearInterpolator@android:anim/linear_interpolatorOvershootInterpolator@android:anim/overshoot_interpolator

Frame Animation

文件位置:res/drawable/filename.xml

资源类型: AnimationDrawable

资源引用:In Java: R.drawable.filename In XML: @[package:]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>
调用范例:

ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);rocketImage.setBackgroundResource(R.drawable.rocket_thrust);rocketAnimation = (AnimationDrawable) rocketImage.getBackground();rocketAnimation.start();
































0 0
原创粉丝点击