Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中获取画布的特定区域_Android_Canvas - Fatal编程技术网

在android中获取画布的特定区域

在android中获取画布的特定区域,android,canvas,Android,Canvas,我在android中使用canvas,我在屏幕中心画了一个半径为300的圆圈,有四个分区 我被阻止了如何在圆圈中只获得第一个弧药水,并填充它,或者以渐进的方式进行操作,我不想在它上面重新绘制用户在第一个弧中绘制的内容,我想要那个区域并在其他区域重新绘制它 我试着得到计算机边界,但它也给了我第一个弧以外的区域 我只需要圆中第一条弧的闭合边界区域,它有4条弧意味着4个分区 如果您有任何帮助或提示,我们将不胜感激您可以在不同的绘画对象的帮助下绘制圆弧并用不同的颜色填充它,这在下面是有意义的。我发布了一

我在android中使用canvas,我在屏幕中心画了一个半径为300的圆圈,有四个分区

我被阻止了如何在圆圈中只获得第一个弧药水,并填充它,或者以渐进的方式进行操作,我不想在它上面重新绘制用户在第一个弧中绘制的内容,我想要那个区域并在其他区域重新绘制它

我试着得到计算机边界,但它也给了我第一个弧以外的区域

我只需要圆中第一条弧的闭合边界区域,它有4条弧意味着4个分区


如果您有任何帮助或提示,我们将不胜感激

您可以在不同的绘画对象的帮助下绘制圆弧并用不同的颜色填充它,这在下面是有意义的。我发布了一些示例代码
public class CircleView extends View {

    Paint paint,paint1,paint2,paint3;

    public CircleView(Context context) {
        super(context);
    }

    public CircleView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        paint = new Paint();
        paint.setColor(Color.GREEN);
        paint1 = new Paint();
        paint1.setColor(Color.BLACK);
        paint2 = new Paint();
        paint2.setColor(Color.CYAN);
        paint3 = new Paint();
        paint3.setColor(Color.MAGENTA);


    }

    public CircleView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public CircleView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        RectF rectF = new RectF();
        rectF.set(50,20,900,480);
       // canvas.drawArc (rectF, 90, 45, true, paint);
       // canvas.drawArc (rectF, 180, 90, true, paint1);


        canvas.drawArc(rectF, 135, 180, false, paint);
        canvas.drawArc(rectF, 135, 180 - 1, false,paint1);
        canvas.drawArc(rectF, 90, 180+ 1, false,paint2);
        canvas.drawArc(rectF, 90, 180, false, paint3);
        canvas.drawArc(rectF, 45, 180, false, paint);


    }


}