安卓 自定义View 转圈圈
public class MyView extends View {
private int dsize;
private RectF rectF;
private Paint paint;
private PointF pointF;
private int n;
private int o;
public MyView(Context context) {
super(context);
initView();
}
public MyView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
initView();
}
private void initView() {
dsize = 200;
o = 20;
rectF = new RectF();
pointF = new PointF();
paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setStrokeWidth(o);
paint.setStrokeCap(Paint.Cap.ROUND);
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.STROKE);
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
rectF.top = o >> 1;
rectF.bottom = h - (o >> 1);
rectF.left = o >> 1;
rectF.right = w - (o >> 1);
pointF.y = w >> 1;
pointF.x = h >> 1;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.save();
canvas.rotate(135,pointF.x,pointF.y);
canvas.drawArc(rectF,0,n,false,paint);
canvas.restore();
if (n < 360){
n += 10;
postInvalidateDelayed(50);
}
}
}