码迷,mamicode.com
首页 > 其他好文 > 详细

A012-anim资源

时间:2015-09-17 01:15:25      阅读:357      评论:0      收藏:0      [点我收藏+]

标签:android   it-xiao小巫   

anim资源这里特指Android中的View Animation(视图动画),然而视图动画分为:
- Tween Animation(补间动画)
- Frame Animation(逐帧动画)

Tween 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);

Frame Animation

文件路径: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

版权声明:本文为博主原创文章,未经博主允许不得转载。

A012-anim资源

标签:android   it-xiao小巫   

原文地址:http://blog.csdn.net/wwj_748/article/details/48506601

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!