android 动画小结

1、Animation Tween

//xml中组合动画


<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>
ImageView spaceshipImage = (ImageView) findViewById(R.id.spaceshipImage);
Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);//AnimationUtils实例化
spaceshipImage.startAnimation(hyperspaceJumpAnimation);

2、Animation Frame or drawable animation

不能在oncreate中start
It's important to note that the start() method called on the AnimationDrawable cannot be called during the onCreate() method of your Activity, 
because the AnimationDrawable is not yet fully attached to the window. If you want to play the animation immediately, without requiring interaction, 
then you might want to call it from the onWindowFocusChanged() method in your Activity, which will get called when Android brings your window into focus.

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="true">
    <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>


The AnimationDrawable class is the basis for Drawable animations.


 ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
  rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
  rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
  
  在onWindowFocusChanged中执行// 该方法在Activity视图加载完之后调用
  rocketAnimation.start();

  3、Property Animation

 

 

参考文章:

http://www.eoeandroid.com/forum.php?mod=viewthread&tid=98092

http://www.eoeandroid.com/forum.php?mod=viewthread&tid=173194

posted @ 2012-08-22 22:21  lipeil  阅读(719)  评论(0编辑  收藏  举报