使用canvas.scale函数放大画布?

Rub*_*uby 9 android zoom scale android-canvas

我已经实现了一个onDraw绘制一组矩形的long 方法.矩形太小,我希望它们看起来更大.但不幸的是我无法更改矩形坐标,因为它们存储在数据库中.那么有什么方法可以放大画布使用canvas.scale()

Mic*_*son 23

我将通过说你需要在0,0处绘制所有内容然后对其进行缩放,并最终将其转换为正常行为来作为前言.

只需在onDraw方法中执行以下操作:

canvas.save();
    canvas.translate(xValue, yValue);
    canvas.scale(xScale, yScale)
    /* draw whatever you want scaled at 0,0*/
canvas.restore();
Run Code Online (Sandbox Code Playgroud)

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();
Run Code Online (Sandbox Code Playgroud)

这将绘制一个长度为5.0的矩形,宽度为5.0,将长度和宽度缩小为2.5,然后将其移动到(50,50).

结果将是一个绘制的矩形,就像你这样做:

canvas.drawRect(50.0, 50.0, 52.5, 52.5, paint);
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助!