我很新手动操作图像,请耐心等待。有人能解释矩阵(Mr.Anderson)吗?
我有一个图像,我允许用户缩小/增长和移动。
基本行为完美。但是,我需要能够抓住“视口”(可见剪辑区域矩形)中的任何内容并将其另存为一个单独的位图。
在我能做到这一点之前,我需要弄清楚图像的实际位置和显示内容。这比我想象的更加棘手。
我的问题是,矩阵文件是荒谬的模糊,我失去了我如何可以测量我的转换图像的坐标和尺寸。正如我所看到的,即使用户收缩/增长,图像的X,Y也保持不变。所以,即使它报告在0,0时,它也显示在(比如说)100,100处。我能得到这些坐标的唯一方法就是做一个相当丑陋的计算(再次......我可能不是最优雅的方式,因为几何不是我的特长)。
我有点希望我失去了一些东西,并有一些方法来拉对象的自动翻译的坐标和尺寸。
在理想的世界中,我可以打电话给(伪)myImg.getDisplayedWidth()
和myImg.getDisplayedX()
。
哦,我应该补充一点,这可能都是一个问题,我通过使用图像中心作为增长/缩小点来引起我自己。如果我将默认的0,0坐标作为非变化点,我认为无论它的大小如何,位置都是正确的。所以...也许所有这一切的答案是简单地找出我的中心偏移并将其应用于我的翻译?
所有帮助非常感谢(和人们不是随意混淆我的问题的标题更是如此!)。
澄清:您是否将Matrix应用于图像以及原始图像点?此外,这是'android.graphics.Matrix'或'android.opengl.Matrix'? – Bringer128
我不确定我是否理解第一个问题。我没有使用opengl。我有一个正在绘制到视图中的画布的位图。视图被设置为一个布局,其clipChildren设置为“true”。我不知道“原始图像点”是什么意思。我自己放置图像。目前,我必须翻译必须移动图像的位置,以便在视口中显示图像,因为即便是以大约.3的比例显示图像。当我缩放图像时,我在图像中心使用了一个点,所以它从中间向外生长。 –
因此,随着它的增长,它被报告X,Y是静态的,即使它的左上角在用户捏合时移动。 –