我已经实现了一个onDraw
绘制一组矩形的长方法。矩形太小了,我希望它们看起来更大。但不幸的是,我无法更改矩形坐标,因为它们存储在数据库中。那么有什么方法可以放大画布canvas.scale()
吗?
问问题
23556 次
1 回答
27
我将通过说您需要在 0,0 处绘制所有内容然后对其进行缩放,最后将其转换为正常运行来作为这个答案的开头。
只需在 onDraw 方法中执行以下操作:
canvas.save();
canvas.translate(xValue, yValue);
canvas.scale(xScale, yScale)
/* draw whatever you want scaled at 0,0*/
canvas.restore();
xScale 在 X 方向收缩或拉伸,yScale 在 Y 方向收缩或拉伸。
1.0 是这些的默认值,因此 2.0 会将其拉伸两倍,而 0.5 会将其缩小一半。
例子:
canvas.save();
canvas.translate(50, 50);
canvas.scale(0.5f, 0.5f);
canvas.drawRect(0.0, 0.0, 5.0, 5.0, paint);
canvas.restore();
这将绘制一个长度为 5.0,宽度为 5.0 的矩形,将其缩小到长度和宽度的 2.5,然后将其移动到 (50, 50)。
结果将是一个绘制的矩形,就好像你这样做了:
canvas.drawRect(50.0, 50.0, 52.5, 52.5, paint);
我希望这有帮助!
于 2012-11-13T18:20:08.280 回答