android - 使用 canvas.scale 函数放大 Canvas ?

标签 android zooming scale android-canvas

我实现了一个很长的 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/

相关文章:

android - 我想创建我的自定义 'build.gradle'文件

jquery - 在 div 中加载新图像时重置缩放位置

javascript - 如何向 d3 可折叠树示例添加缩放功能?

mouse - 将屏幕坐标转换为模型坐标

java - 如何在运行时缩放 libGDX 中的粒子效果?

html - 背景图像的全宽和全高

android - 隐藏 Phonegap 应用程序中的滚动条

java - 由于未解析的类型,ApiDemos 3.0/3.1 将无法构建

android - android 中的警报管理器和通知

android - 缩放以适合 map 上的所有标记谷歌地图 v2