圆球动画

《mainactivity布局 》
<com.bawei.mylianxitow.CricleView
android:id="@+id/cricle"
android:layout_width=“wrap_content”
android:layout_height=“wrap_content” />
《CricleView 自定义view》
public class CricleView extends View {

private Paint mPaint;

public CricleView(Context context) {
    super(context);
    init(context);
}

public CricleView(Context context, @Nullable AttributeSet attrs) {
    super(context, attrs);
    init(context);
}
private void init(Context context) {
    mPaint = new Paint();//画笔
    mPaint.setColor(Color.RED);//颜色
    mPaint.setAntiAlias(true);
    mPaint.setStrokeWidth(5);//粗细
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    canvas.drawCircle(50, 50, 50, mPaint);
}

//传递颜色,改变颜色
public void setColor(int color){
    mPaint.setColor(color);
    invalidate();//刷新
}

}

《MainActivity 》
public class MainActivity extends AppCompatActivity {

private CricleView cricle;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    cricle = (CricleView) findViewById(R.id.cricle);

    int width = getWindowManager().getDefaultDisplay().getWidth();//宽
    int height = getWindowManager().getDefaultDisplay().getHeight();//高

    ObjectAnimator objectAnimatorX = ObjectAnimator.ofFloat(cricle, "translationX", 0, width - 100);
    ObjectAnimator objectAnimatorY = ObjectAnimator.ofFloat(cricle, "translationY", 0, height - 100);

    AnimatorSet animatorSet = new AnimatorSet();
    animatorSet.setDuration(5000);
    animatorSet.play(objectAnimatorX).with(objectAnimatorY);
    animatorSet.start();
    animatorSet.addListener(new Animator.AnimatorListener() {
        @Override
        public void onAnimationStart(Animator animation) {

        }

        @Override
        public void onAnimationEnd(Animator animation) {
            //跳转登录页面
            startActivity(new Intent(MainActivity.this, TowActivity.class));
            finish();
        }

        @Override
        public void onAnimationCancel(Animator animation) {

        }

        @Override
        public void onAnimationRepeat(Animator animation) {

        }
    });
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            cricle.setColor(Color.BLUE);
        }
    }, 500);
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            cricle.setColor(Color.YELLOW);
        }
    }, 1000);
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            cricle.setColor(Color.GREEN);
        }
    }, 1500);
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            cricle.setColor(Color.WHITE);
        }
    }, 2000);

}

}

猜你喜欢

转载自blog.csdn.net/weixin_44666694/article/details/88781996