Tweenアニメーション for XML

Android Tips

XMLで記述した場合はこうなります。

import android.app.Activity;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class MyClass extends Activity{

  public void startAnimation(){
    ImageView image = (ImageView)findViewById(R.id.animView);
    Animation anim = AnimationUtils.loadAnimation(this,R.anim.myAnim);

    // 即時アニメーション開始
    image.startAnimation(anim);

    // android:startOffsetで設定された時間後に開始
    image.setAnimation(anim);
  }
} 

res/anim/cycle.xml

<?xml version="1.0" encoding="utf-8"?>
<cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android" android:cycles="1" />

res/anim/myAnim.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
  android:interpolator="@anim/cycle"
  android:fillBefore="false"
  android:fillAfter="true" 
  android:repeatMode="restart" // "restart" or "reverse"
  android:repeatCount="10" // "n" or "0"(リピートなし) or "-1"(永久)
>
<alpha
  android:fromAlpha="0.0"
  android:toAlpha="1.0"
  android:duration="1000"
  android:startOffset="1000"
/>
<rotate
  android:fromDegrees="0"
  android:toDegrees="360"
  android:pivotX="100"
  android:pivotY="100"
/>
<scale
  android:duration="10000"
  android:fromXScale="0.0"
  android:toXScale="0.1"
  android:fromYScale="0.0"
  android:toYScale="0.1"
  android:pivotX="100"
  android:pivotY="100"
/>
<translate
  // "%":RELATIVE_TO_SELF or "%p":RELATIVE_TO_PARENT
  android:fromXDelta="-100%p"
  android:toXDelta="0%p"
  android:fromYDelta="0%p"
  android:toYDelta="0%p"
/>
</set>

参考: Tweenアニメーション
参考: Frameアニメーション

コメント