【问题标题】:Move all drawn pixels in Canvas在 Canvas 中移动所有绘制的像素
【发布时间】:2016-05-17 00:24:31
【问题描述】:

一旦我在Canvas 中绘制了我需要的所有内容,有没有办法将其全部移动?就像将它全部向下移动 10 个像素?我搜索了functionsGoogle,但没有发现任何有趣的内容。

绘制了很多东西,因此重新校准所有应用程序有点困难。有什么想法吗?我在 Android 上工作,但我认为这并不重要。

也许我可以得到像素并一个一个地复制它们,但我觉得它会很慢。

谢谢。


编辑:对于有相同问题的人。如果您想使用translate(),这就是它的工作原理。如果你设置translate(x, y),当你画一些东西时,它会被那些(x & y)值自动移动。

例如:如果您执行以下操作:

canvas.translate(5, 10);

然后画一条线:

canvas.drawLine(0, 0, 20, 20). 

该行将从 [5,10] 打印到 [25, 30]。所以你画的所有东西都会自动移动,[5, 10] 变成 [0, 0]。您也可以canvas.translate(-5, -10) 将其恢复原状(或重置)。

【问题讨论】:

    标签: java android canvas drawing


    【解决方案1】:

    如果你的问题没有错,你可以使用canvas.translate() 函数。您可以在 Canvas 的 onDraw() 方法中执行此操作。 Here 是函数的文档(滚动到页面的最底部)。希望对您有所帮助!

    【讨论】:

    • 我花了一段时间才弄清楚它是如何工作的,但它确实做到了。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 2015-09-16
    • 2013-06-19
    • 1970-01-01
    相关资源
    最近更新 更多