我已经实现了一个绘制一组矩形的长onDraw
方法。矩形太小,我希望它们看起来更大。但不幸的是我无法更改矩形坐标,因为它们存储在数据库中。那么有什么方法可以使用canvas.scale()
放大画布吗?
答案 0 :(得分:22)
我将在前面写这个答案,说你将需要在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);
我希望这有帮助!