最終更新: moonlight_aska 2015年11月29日(日) 15:32:05履歴
Property Animation(API Level 11)において, アニメーションの実行をキャンセルするには, アニメータ(animation.Animator)クラスを利用する.
- Animation01.java
- Animator#isRunningメソッドで, アニメーション実行中か否か確認する.
- Animator#cancelメソッドで, アニメーションの実行をキャンセルする.
package com.moonlight_aska.android.work.animation01;
import android.animation.AnimatorInflater;
import android.animation.AnimatorSet;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
public class MainActivity extends Activity {
private AnimatorSet mSet = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView img = (ImageView) findViewById(R.id.robot);
mSet = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.repeat);
mSet.setTarget(img);
mSet.start();
}
// キャンセルボタンの処理
public void onCancelListener(View view) {
if (mSet != null) {
if (mSet.isRunning()) {
mSet.cancel();
}
}
}
}
- res/animator/repeat.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<objectAnimator
android:interpolator="@android:anim/decelerate_interpolator"
android:propertyName="rotation"
android:duration="5000"
android:valueFrom="0"
android:valueTo="360"
android:repeatCount="10"
/>
</set>
コメントをかく