java - 尝试从 ImageView 的 onTouchListener 获取位图像素

标签 java android bitmap imageview

我在 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/

相关文章:

android - 如何将 scala sbt 项目构建为 Android 库?

java - 如何解决此 GMS ApiException : Error Code 12500?

android - 如何使用 KITKAT 4.4.2 版本避免 SD 卡上的 "EACCES permission denied"。谷歌的新政策

android - 在 android 中移动带有重复位图图像的路径

Android:如何临时呈现以编程方式创建的位图以进行调试?

java - google app engine 支持 Java 的 restful API?

java - NestedScrollView 重叠工具栏(它们位于 fragment 布局内部)

java - 如何将 java.awt.geom.AffineTransform 的实例转换为 javafx.scene.transform.Affine 的实例

java - 让 EasyMock 模拟对象抛出异常

bitmap - 在位板中查找对角线的计算可行方法