我将通过说你需要在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);

我希望这有帮助!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐