【问题标题】:Android Canvas renderingAndroid 画布渲染
【发布时间】:2015-04-01 19:05:40
【问题描述】:

我正在制作一个游戏,我想像这样部分隐藏 SurfaceView 的画布:

从这里: 对此:

有没有办法用 Canvas 方法做到这一点?提前致谢。

【问题讨论】:

    标签: java canvas rendering draw surfaceview


    【解决方案1】:

    将此代码放在画布上绘制的方法中:

                Path invertedCircle = new Path();
                int radius = (canvas.getWidth() < canvas.getHeight()) ? canvas
                        .getWidth() / 4 : canvas.getHeight() / 2;
                invertedCircle.addCircle(canvas.getWidth() / 2,
                        canvas.getHeight() / 2, radius, Direction.CW);
                invertedCircle.setFillType(FillType.INVERSE_EVEN_ODD);
                Paint p = new Paint();
                p.setColor(Color.BLACK);
                canvas.drawPath(invertedCircle, p);
    

    这会用黑色填充除圆圈(中心)之外的所有内容。如果您先绘制了矩形和白色背景,那么这应该会让您接近。

    【讨论】: