Android Canvas - 限制绘制区域

JaL*_*t1k 1 android canvas

因此,在我的画布上,我有几个矩形区域可以用来绘制不同的位图。有时位图会超出其各自的区域。我希望这些位图被剪掉,因此只绘制其区域内的位图部分。

我当然可以手动计算它(srcRect和dstRect)...但是没有更简单的解决方案吗?

我找到了clipBounds,但它似乎并没有以任何方式限制绘图区域。

gre*_*e31 5

你想要的是Canvas.clipRect()。当然,您需要知道剪切矩形的边界,但您无需担心计算自定义srcRect.

要使用 ,save()Canvas执行单个drawBitmap(),然后restore()使用它来恢复原始剪辑状态:

canvas.save();
canvas.clipRect(...);
canvas.drawBitmap(...);
canvas.restore();
Run Code Online (Sandbox Code Playgroud)