我在 ImageView 上显示位图。当点击 ImageView 时,我想获取点击它的位图的像素 x/y 坐标。我已经注册了 ImageView 的 onTouchListener,并且在 onTouch 方法中,我使用 getX 和 getY 来获取触摸的位置。问题在于 ImageView 中的图像可能比 View 本身大,因此按比例缩小以适合屏幕。那么,返回的 x 和 y 坐标是 View 的坐标,但不一定是 Bitmap 上相应像素的坐标。
我能否获得某种比例因子来了解它的大小调整了多少?或者,如果没有,有人可以建议我如何获取我需要的信息吗?最重要的是我可以获得像素坐标 - 如果我必须更改 View 类型,那也没关系。
另外,有时位图比屏幕小,所以它会按比例放大。在这种情况下,从 MotionEvent 接收到的 x 和 y 可能在实际位图的边界之外。
最佳答案
检查 ScaleType 属性。您必须根据 getScaleType() 的结果对原始图像进行数学运算,但值得一试。
关于java - 尝试从 ImageView 的 onTouchListener 获取位图像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5698372/