gpt4 book ai didi

java - Android - 调整可缩放 ImageView 顶部的 ImageView 位置

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:34 31 4
gpt4 key购买 nike

我正在研究图像,制作一项允许用户在图像上放置标签(例如 Facebook 照片标签)的功能。我有一个可缩放的 ImageView(使用 Mike Ortiz's TouchImageView)作为背景图像,还有一些 ImageView 作为图像标签。

每个标签都有XY 位置,在正确位置显示背景图片和图像标签没有问题。但是,当用户触发缩放时,背景图像的位置会发生变化。这意味着,每个图像标签的位置也必须根据当前背景图像的缩放级别滚动位置进行更改/更新。

我目前正在使用这种方法:

float currentZoom = mImageView.getCurrentZoom();
float zoomedX = x / currentZoom;
float zoomedY = y / currentZoom;

但是当我尝试时,它完全出错了。谁能帮我找到正确的方法/方程式?

编辑:

我尝试使用 Matrix.mapPoints(),但我不明白这个矩阵如何帮助我解决我的问题。为了更好地解释,这是一张图片:

image

最佳答案

我终于得到了答案(感谢pskink)!要获得图像上的准确标记位置,我们所要做的就是使用 Matrix.mapPoints()。但仅此一项不会在缩放后给出新的 XY 位置。我们必须将当前 XY 位置乘以当前缩放级别 以获得“缩放后位置 ".

换句话说:

Matrix matrix = mImageView.getImageMatrix();
float[] pts = {0, 0};
matrix.mapPoints(pts);
float newTagX = (tagX * currentZoom) + pts[0];
float newTagY = (tagY * currentZoom) + pts[1];

关于java - Android - 调整可缩放 ImageView 顶部的 ImageView 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26650315/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com