我实现了一个很长的 onDraw
方法,它绘制了一组矩形。矩形太小,我希望它们看起来更大。但不幸的是我无法更改矩形坐标,因为它们存储在数据库中。那么有什么方法可以使用 canvas.scale()
放大 Canvas 吗?
最佳答案
我要在这个答案的开头说你需要在 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方向收缩或拉伸(stretch), yScale 在 Y 方向收缩或拉伸(stretch)。
1.0 是这些的默认值,因此 2.0 会将其拉伸(stretch)一倍,而 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);
希望对您有所帮助!
关于android - 使用 canvas.scale 函数放大 Canvas ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13348386/