CricleView
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 mCricleView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mCricleView = (CricleView) findViewById(R.id.cricle);
int width = getWindowManager().getDefaultDisplay().getWidth();
int height = getWindowManager().getDefaultDisplay().getHeight();
ObjectAnimator objectAnimatorX = ObjectAnimator.ofFloat(mCricleView, "translationX", 0, width - 100);
ObjectAnimator objectAnimatorY = ObjectAnimator.ofFloat(mCricleView, "translationY", 0, height - 100);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.setDuration(3000);
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, LoginActivity.class));
finish();
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mCricleView.setColor(Color.BLUE);
}
}, 1000);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mCricleView.setColor(Color.BLACK);
}
}, 2000);
}
}