java - Android Canvas渲染

标签 java canvas rendering draw surfaceview

我正在制作一个游戏,我想部分隐藏 SurfaceView 的 Canvas ,如下所示:

由此: 对此:

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

最佳答案

将此代码放入在 Canvas 上绘图的方法中:

            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);

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

关于java - Android Canvas渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29398799/

相关文章:

ruby-on-rails - Rails : Rendering Models?

algorithm - 在队列中渲染实体?

java - 如果单例类本身正在使用 PowerMock 进行测试,如何模拟该类的私有(private)方法?

java - Hou 使用 spring data elasticsearch 滚动 api 进行排序

javascript - Node Canvas 图像处理

javascript - HTML5 Canvas - 绘制线段和圆圈 - 一个圆圈使用不同的颜色

c++ - 渲染大量立方体的剔除技术

java - 包括 TestNG @Before* 步骤以吸引报告

java - sheet.getLastRowNum() 给出不同的值

javascript - HTML 5 Canvas - 获取路径的像素数据