从一个大小为原图一半的ImageView获取Bitmap图像的坐标。

4

我有一个包含Bitmap图像的ImageView。该图像的大小是其容器的两倍。我已经声明了onScroll()函数,以便能够在Bitmap图像中移动。如何获取ImageViewBitmap图像上的坐标?

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.image);
_iv.setImageBitmap(bm);
_iv.setAdjustViewBounds(true);
_iv.setMaxHeight(bm.getHeight());
_iv.setMaxWidth(bm.getWidth());
_iv.setScaleType(ImageView.ScaleType.CENTER);

Bitmap newBm = Bitmap.createScaledBitmap(bm, bm.getWidth() * 2, bm.getHeight() * 2, true);
_iv.setImageBitmap(newBm);
1个回答

0

我还没有找到实际的方法来做到这一点。以下是我使用的方法:

在创建 ImageView后,滚动到已知位置。

int ivX = 0;
int ivY = 0;

_iv.invalidate();
_iv.scrollTo(ivX, ivY);

这样我就可以得到我所在位置的确切(x, y)坐标。然后,我实现了onScroll()方法,并使用生成的距离来重新计算我的(x, y)坐标:

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
    //Add the scroll distance to the old X, Y coordinates
    ivX += distanceX;
    ivY += distanceY;

    //Scroll to the new location
    _iv.scrollTo(ivX, ivY);

    return false;
} //End onScroll()

此外,为了更好地理解 scrollTo() 的工作原理以及图像坐标与其容器之间的关系,请访问link阅读我的另一篇文章。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接