当前位置:操作系统 > 安卓/Android >>

Android animation学习笔记之view/drawable animation

  不论是xml的动画还是android code编写的动画,都可以定义一个连续播放的动画.建议用xml文件动画,因为它更容易完成,更容易重运用,更容易修改.    xml动画文件放在res/anim文件夹当中.这个文件必须有一个跟元素(<alpha/scale/translate/rotateinterpolator element/set>),默认所有的动画是同时进行的,为了让他们一个接一个进行,你可以定义startoffset属性来控制,就像下边的代码一样:

[java]  <SPAN style="FONT-SIZE: 16px" data-mce-style="font-size: 16px;"><set 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/decelerate_interpolator"> 
        <scale 
           android:fromXScale="1.4" 
           android:toXScale="0.0" 
           android:fromYScale="0.6" 
           android:toYScale="0.0" 
           android:pivotX="50%" 
           android:pivotY="50%" 
           android:startOffset="700" 
           android:duration="400" 
           android:fillBefore="false" /> 
        <rotate 
           android:fromDegrees="0" 
           android:toDegrees="-45" 
           android:toYScale="0.0" 
           android:pivotX="50%" 
           android:pivotY="50%" 
           android:startOffset="700" 
           android:duration="400" /> 
    </set> 
</set></SPAN> 

<set 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/decelerate_interpolator">
        <scale
           android:fromXScale="1.4"
           android:toXScale="0.0"
           android:fromYScale="0.6"
           android:toYScale="0.0"
           android:pivotX="50%"
           android:pivotY="50%"
           android:startOffset="700"
           android:duration="400"
           android:fillBefore="false" />
        <rotate
           android:fromDegrees="0"
           android:toDegrees="-45"
           android:toYScale="0.0"
           android:pivotX="50%"
           android:pivotY="50%"
           android:startOffset="700"
           android:duration="400" />
    </set>
</set>     屏幕坐标为左上角是(0,0),往下往右依次增加. 有一些值,比如pivoitX可以被赋值为相对值,比如50%,意思是相对于自己的50%.50意思是想对于父控件的50%. 也可以定义Interpolator,就是速度插入器,在上篇property animation中有详细介绍.

 

[java]  ImageView spaceshipImage = (ImageView) findViewById(R.id.spaceshipImage);  
Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);  
spaceshipImage.startAnimation(hyperspaceJumpAnimation);  

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

也可以不调用startAnimation函数,直接定义:animation.setStarttime(),当到达那个时间点后,此动画会自动进行.

 

    Drawable Animation 可以帮助你将一个一个Drawable resources一个接一个的播放出来,就像传统的动画一样.AnimationDrawable类是Drawable animation的基础.

     Drawable Animation 虽然是动画,但是还是由Drawable resources组合而成的,所以其xml文件一般放在res/drawable中,其xml文件是由<animation-list>元素组成其根节点,<item>组成其框架,下面是例子:

[java] <SPAN style="FONT-SIZE: 16px" data-mce-style="font-size: 16px;"><animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
    android:oneshot="true"> 
    <item android:drawable="@drawable/rocket_thrust1" android:duration="200" />&nb

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,