自定义CricleView继承一个view
package bawei.com.zhoukaodemo2;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
public class CricleView extends View {
private Paint mPaint;
public CricleView(Context context) {
super(context);
init(context);
}
public CricleView(Context context, 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();
}
}
主布局main
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
//这里里不要忘记改包名,是你自己定义view的路径名
<bawei.com.zhoukaodemo2.CricleView
android:id="@+id/cricle"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
MainActivity
package bawei.com.zhoukaodemo2;
import android.animation.Animator;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Intent;
import android.graphics.Color;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Display;
public class MainActivity extends AppCompatActivity {
private CricleView mCricleView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mCricleView = findViewById(R.id.cricle);
int width = getWindowManager().getDefaultDisplay().getWidth();
int height = getWindowManager().getDefaultDisplay().getHeight();
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(mCricleView,"translationX",0,width-100);
ObjectAnimator objectAnimator1 = ObjectAnimator.ofFloat(mCricleView,"translationY",0,height-100);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.play(objectAnimator).with(objectAnimator1);
animatorSet.setDuration(3000);
animatorSet.start();
animatorSet.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
mCricleView.setColor(Color.BLUE);
}
@Override
public void onAnimationEnd(Animator animation) {
//页面跳转
Intent intent = new Intent(MainActivity.this,LoginActivity.class);//这里自己写一个Activity就行,这里不写啦。
startActivity(intent);
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);
}
}