您的位置:首页 > 移动开发 > Android开发

Android动画入门(一)

2015-12-24 00:22 211 查看
**Android
的动画可以分为三种:View动画、帧动画、属性动画,其实帧动画也属于View动画的一种,只不过它和平移、旋转等常见的View动画在表现形式上略有不同而已。View动画通过对场景里的对象不断做图像变换(平移、缩放、旋转、透明度)从而产生动画效果,它是一种渐进式动画,并且View动画支持自定义。帧动画通过顺序播放一系列图像从而产生动画效果,可以简单理解为图片切换动画,很显然,如果图片过多过大就会导致OOM。属性动画通过动态地改变对象的属性从而达到动画效果,属性动画为API11的新特性,在低版本无法直接使用属性动画。****先看下View动画**View动画的作用对象是View,它支持4种动画效果,分别是平移动画、缩放动画、旋转动画和透明度动画。**1.View动画的种类**View动画的四种变换效果对应着Animation的四个子类:TranslateAnimation、ScaleAnimation、RotateAnimation和AlphaAnimation。这四种动画既可以通过XML来定义,也可以通过代码来动态创建,对于View动画来说,建议采用XML来定义动画,这是因为XML格式的动画可读性更好。要使用View动画,首先要创建动画的XML文件,这个文件的路径为:res/anim/zr_animation_first.xml
。View动画的描述文件是有固定的语法的,如下所示。<?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>从上面的语法可以看出,View动画既可以是单个动画,也可以由一系列动画组成。<set>标签标示动画集合,对应AnimationSet类,它可以包含若干个动画,并且它的内部也是可以嵌套其他动画集合的,它的两个属性的含义如下:**android:interpolator**表示动画集合所采用的插值器,插值器影响动画的速度,比如非匀速动画就需要通过插值器来控制动画的播放过程。这个属性可以不指定,默认为@android:anim/accelerate_decelerate_interpolator,即加速减速插值器。**android:shareInterpolator**表示集合中的动画是否和集合共享同一个插值器。如果集合不指定插值器,那么子动画就需要单独指定所需的插值器或者使用默认值。<translate>标签表示平移动画,对应TranslateAnimation类,它可以使一个View在水平和竖直方向完成平移的动画效果,它的一系列属性的含义如下:
android:fromXDelta ——表示x的起始值,比如0:
android:toXDelta——表示x的结束值,比如100:
android:fromYDelta——表示y的起始值,比如0:
android:toYDelta——表示y的结束值,比如100:<scale>标签表示缩放动画,对应ScaleAnimation,它可以使View具有放大或者缩小的动画效果,它的一系列属性的含义如下:android:fromXScale——水平方向缩放的起始值,比如0.5android:toXScale——水平方向缩放的结束值,比如1.2android:fromYScale——竖直方向缩放的起始值android:toYScale——竖直方向缩放的结束值android:pivotX——缩放的轴点的x坐标,它会影响缩放的效果
android:pivotY——缩放的轴点的y坐标,它会影响缩放的效果在<scale>标签中提到了轴点的概念,这里举个例子,默认情况下轴点是View的中心点,这个时候在水平方向进行缩放的话会导致View向左右两个方向同时进行缩放,但是如果把轴点设为View的右边界,那么View就只会向左边进行缩放,反之则向右边进行缩放,具体效果读者可以自己测试一下。<rotate>标签表示旋转动画,对于RotateAnimation,它可以使View具有旋转的动画效果,它的属性的含义如下:android:fromDegrees——旋转开始的角度,比如0android:toDegrees——旋转结束的角度,比如180android:pivotX——旋转的轴点的x坐标android:pivotY——旋转的轴点的y坐标在旋转动画中也有轴点的概念,它也会影响到旋转的具体效果。在旋转动画中,轴点扮演者旋转轴的角色,即View是围绕着轴点进行旋转的,默认情况下轴点为View的中心点。考虑一种情况,View围绕着自己的中心点和围绕着自己的左上角旋转90度显然是不同的旋转轨迹,不同轴点对旋转效果的影响读者可以自己测试一下。<alpha>标签表示透明度动画,对应AlphaAnimation,它可以改变View的透明度,它的属性的含义如下:android:fromAlpha——表示透明度的起始值,比如0.1android:toAlpha——表示透明度的结束值,比如1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: