【发布时间】:2020-02-06 22:01:59
【问题描述】:
所以在我的画布上,我有几个矩形区域用于绘制不同的位图。 有时位图会超出其各自的区域。我希望这些位图被切断,所以只绘制它所在区域内的位图部分。
我当然可以手动计算(srcRect 和 dstRect)... 但是没有更简单的解决方案吗?
我找到了clipBounds,但它似乎并没有以任何方式限制绘图区域。
【问题讨论】:
所以在我的画布上,我有几个矩形区域用于绘制不同的位图。 有时位图会超出其各自的区域。我希望这些位图被切断,所以只绘制它所在区域内的位图部分。
我当然可以手动计算(srcRect 和 dstRect)... 但是没有更简单的解决方案吗?
我找到了clipBounds,但它似乎并没有以任何方式限制绘图区域。
【问题讨论】:
你想要的是Canvas.clipRect()。当然,您需要知道剪切矩形的边界,但您不必担心计算自定义srcRect。
要使用 save() 和 Canvas,请执行单个 drawBitmap(),然后执行 restore() 以恢复原始剪辑状态:
canvas.save();
canvas.clipRect(...);
canvas.drawBitmap(...);
canvas.restore();
【讨论】: