左右canvas.drawArc,canvas.drawOval 和RectF 关联

时间:2023-03-09 17:40:01
左右canvas.drawArc,canvas.drawOval 和RectF 关联

1.paint.setStyle(Paint.Style.STROKE)

//    radius="100dp"
// interRadius="40dp"
// linearWidth="10dp"
// stokenWidth="40dp"
        mPaint=new Paint();
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeWidth(mStokenWidth);
mPaint.setColor(Color.BLUE);
mPaint.setAntiAlias(true); mPaint2=new Paint();
mPaint2.setStyle(Paint.Style.STROKE);
mPaint2.setColor(Color.BLACK); int left=mStokenWidth/2;
int top=mStokenWidth/2;
mRectF=new RectF();
mRectF.left=left;
mRectF.top=top;
mRectF.right=(mRadius-left)*2;
mRectF.bottom=(mRadius-top)*2;

onDraw

    @Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawArc(mRectF, 0, 90, false, mPaint);
mPaint.setColor(Color.RED);
canvas.drawArc(mRectF, 90, 90, false, mPaint);
mPaint.setColor(Color.YELLOW);
canvas.drawArc(mRectF, 180, 90, false, mPaint);
mPaint.setColor(Color.GRAY);
canvas.drawArc(mRectF, 270, 90, false, mPaint);
canvas.drawRect(mRectF,mPaint2);
}

如图:左右canvas.drawArc,canvas.drawOval 和RectF 关联

2.paint.setStyle(Paint.Style.FILL)

效果例如以下

左右canvas.drawArc,canvas.drawOval 和RectF 关联

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2VueWFuZ3M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

RectF画的矩形刚好成为了扇形的外切矩形

说明当style 为stoken 的时候。rectf画出的举行每条边刚好在描边的中间

什么时候style至Fill什么时候,rect外整个图形长方形切割

版权声明:本文博主原创文章,博客,未经同意不得转载。