Android - 在imageview上创建可点击区域

时间:2016-04-25 09:58:14

标签: android image mapping area clickable

我想使用此数据在imageview上创建可点击区域

"X1": "213",
"Y1": "174",
"X2": "339",
"Y2": "269",

我还希望将一个Action与此可点击区域相关联,例如点击它时转到某些活动。 我不想使用此链接中给出的解决方案。 clickable area of image

因为我有多个Imageview,每次坐标都不一样。这些纵坐标来自服务器。

请建议处理此问题的最佳方法。

1 个答案:

答案 0 :(得分:7)

您可以观看触摸的位置:

ImageView iv = (ImageView) findViewById(R.id.image);
iv.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
    log.d(TAG,"Location: " + event.getX() + " , " + event.getY());
    }
});

更新1: 您可以将视图的左上角位置设置如下:

int[] viewCoords = new int[2];
imageView.getLocationOnScreen(viewCoords);

从那里,您可以看到被触摸的图像视图的确切位置:

int X = (int) event.getX();
int Y = (int) event.getY();

int imageX = X - viewCoords[0];
int imageY = Y - viewCoords[1];