0

请帮我

我正在开发一个 android 应用程序以在图像视图中显示可缩放和可拖动的位图(图像视图的边界与设备屏幕大小相同)。我只是缩放位图并将其显示在图像视图中

我想要的是

当单击设备屏幕上的某个位置时,获取 X 和 Y 位置并在我单击位图的位置准确绘制一个点就像在位图上标记您的位置

这是一张描述性图片(抱歉,我的声誉很低,无法上传到这里)

http://www4.picturepush.com/photo/a/9321682/img/9321682.jpg

当图像显示时,我想获取图像视图的 x2、y2 位置并在位图上的 x1、y1 位置绘制红点

如果您能给我一些代码或建议,这对我很有帮助

谢谢你

4

2 回答 2

1

我遇到了同样的问题并得到了解决。

试试这个,

  1. *获取接触点 x, y *

       int x = (int) event.getX();
       int y = (int) event.getY();
    

2.计算逆矩阵

            // calculate inverse matrix
            Matrix inverse = new Matrix();

3. 获取你的 ImageView 矩阵 getImageMatrix().invert(inverse);

4. 将您的坐标映射到实际图像

        // map touch point from ImageView to image
        float[] touchPoint = new float[] { event.getX(), event.getY() };
        inverse.mapPoints(touchPoint);

* 4. 获取图像的实际 x、y *

        x = (int) touchPoint[0];
        y = (int) touchPoint[1];
于 2014-02-26T06:53:09.837 回答
0

为了捕捉触摸的坐标,使用onTouchimageView 的事件:

imageView.setOnTouchListener(this);

@Override
    public boolean onTouch(View view, MotionEvent me) {
        int x = me.getX();
        int y = me.getY();
        yourbitmap.setPixel(x + dx, y + dy, COLOR.RED);

        return true;

}

dx, dyimageView中位图的位移在哪里。

编辑

dx和的值dy取决于您自己设置的图像视图的设置。如果位图始终居中而不是屏幕填充,dy= (imageview_height - bitmap_height) / 2并且dx= (imageview_width - bitmap_width) / 2. 如果图像被缩放以适合图像视图,则必须确定比例因子。您可以在此处阅读有关这些计算的信息。

于 2012-09-08T14:42:19.090 回答