package com.example.myapplication; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import android.view.View; /** * author:F * created on:2021/3/2 17:02 * description: */ public class GetCirclePointView extends View { private Paint mPaint; private int w, h; int angle = 90; private int centerX; private int centerY; public GetCirclePointView(Context context) { super(context); init(); } public GetCirclePointView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public GetCirclePointView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); this.w = w; this.h = h; centerX =w/2; centerY =h/2; } private void init() { mPaint = new Paint(); mPaint.setStrokeWidth(5); mPaint.setColor(Color.RED); mPaint.setAntiAlias(true); mPaint.setStyle(Paint.Style.STROKE); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //将圆点平移到View的中心,而不是默认的左上角 // canvas.translate(w / 2, h / 2); int radius = 100; canvas.drawCircle(centerX, centerY, radius, mPaint); // for(int i = 0;i<360;i+= 30){ //计算小圆的圆心点(x,y)点在圆的边上 // int x = centerX + (int) (radius * Math.cos(angle * Math.PI / 180)); // int y = centerY + (int) (radius * Math.sin(angle * Math.PI / 180)); int x=centerX- (int) (radius * Math.cos(angle * Math.PI / 180)); int y=centerY- (int) (radius * Math.sin(angle * Math.PI / 180)); angle += 1; Paint paint = new Paint(); paint.setStyle(Paint.Style.FILL); paint.setColor(Color.BLUE); paint.setAntiAlias(true); canvas.drawCircle(x, y, 20, paint); mHandler.sendEmptyMessageDelayed(0, 10); // } } private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 0: // angle += 1; if (angle <= 450) { invalidate(); } break; default: break; } } }; }
自定义View,一个小圆绕着一个大圆动
最新推荐文章于 2021-05-26 16:02:50 发布