anim资源这里特指Android中的View Animation(视图动画),然而视图动画分为:
- Tween Animation(补间动画)
- Frame Animation(逐帧动画)
文件路径:res/anim/filename.xml
这样的一个资源指向一个Animation对象
资源引用:
- Java中引用:R.anim.filename
- XML中引用:@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
<set> <alpha> <scale> <translate> <rotate>
这些标签都可以作为根标签,代表一种动画,其中<set>
可以包含以上所有标签,我们可以通过 <set>
和其他标签组合设计多种多样的动画效果。
下面逐个解析标签的作用:
<set>
代表一个AnimationSet
属性:
- android:interpolator (插值器)
- android:shareInterpolator(是否在所有的元素中分享插值器)
<alpha>
代表一个AlphaAnimation,淡入淡出动画
属性:
- android:fromAlpha(开始透明度,0.0-完全透明 1.0-不完全透明)
- android:toAlpha(结束透明度,0.0-完全透明 1.0-不完全透明)
<scale>
代表一个ScaleAnimation,缩放动画
属性:
- android:fromXScale(开始时X方向上相对自身的缩放比例,1.0表示没有变化)
- android:toXScale(结束时X方向上相对自身的缩放比例)
- android:fromYScale(开始时Y方向上相对自身的缩放比例)
- android:toYScale(结束时Y方向上相对自身的缩放比例)
- android:pivotX(缩放X轴位置,50表示绝对位置,50%表示相对自身,50%p表示相对父控件)
- android:pivotY(缩放Y轴位置,取值同上)
<translate>
代表一个TranslateAnimation,偏移动画
- android:fromXDelta(动画起始时 X坐标上的位置 )
- android:toXDelta(动画结束时 X坐标上的位置)
- android:fromYDelta(动画起始时 Y坐标上的位置 )
- android:toYDelta(动画结束时 Y坐标上的位置 )
取值举例:
android:toXDelta=”100%”,表示自身的100%,也就是从View自己的位置开始
android:toXDelta=”80%p”,表示父层View的80%,是以它父层View为参照的
<rotate>
代表一个RotateAnimation, 旋转动画
属性:
- android:fromDegrees(动画开始时角度)
- android:toDegrees(动画结束时角度)
- android:pivotX(旋转中心的X坐标)
- android:pivotY(旋转中心的Y坐标)
补间动画例子:
<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 image = (ImageView) findViewById(R.id.image);
Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
image.startAnimation(hyperspaceJump);
文件路径:res/drawable/filename.xml
这样的一个资源指向一个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>
属性:
- android:oneshot(是否只播放一次)
例子:
<?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>
一个item表示一帧,一帧对应一张图片,duration表示持续的时间。
代码中使用:
ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
rocketAnimation.start();
本节课主要讲解了Android中anim资源的知识点和具体使用方法,如需要获取更详细的资料,可以访问以下地址:
http://www.android-doc.com/guide/topics/resources/animation-resource.html
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/wwj_748/article/details/48506601