您的位置:首页 > 移动开发 > Android开发

Android旋转动画不停顿

2017-07-19 11:08 453 查看
[java] view
plain copy

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);  

    }  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: