Android旋转动画不停顿

package com.example.demoandroid;

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

	private Button bt;
	private Animation an;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		bt = (Button) findViewById(R.id.bt);
		
		an = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
		an.setInterpolator(new LinearInterpolator());//不停顿
		an.setRepeatCount(1);//重复次数
		an.setFillAfter(true);//停在最后
		an.setDuration(4000);
		an.setAnimationListener(new AnimationListener() {
			@Override
			public void onAnimationStart(Animation animation) {
				Toast.makeText(MainActivity.this, "开始了", 0).show();
			}
			@Override
			public void onAnimationRepeat(Animation animation) {
				Toast.makeText(MainActivity.this, "重复了", 0).show();
			}
			@Override
			public void onAnimationEnd(Animation animation) {
				Toast.makeText(MainActivity.this, "结束了", 0).show();
			}
		});
		//动画开始
		bt.startAnimation(an);
	}

	@Override
	public boolean onTouchEvent(MotionEvent event) {
		switch (event.getAction()) {
		case MotionEvent.ACTION_DOWN:
			bt.clearAnimation();
			break;
		case MotionEvent.ACTION_UP:
			bt.startAnimation(an);
			break;

		default:
			break;
		}
		return super.onTouchEvent(event);
	}
}

你可能感兴趣的:(Android旋转动画不停顿)