Android - 在图像视图上创建可点击区域
Android - create clickable area on imageview
我想使用这些数据在 imageview 上创建一个可点击区域
"X1": "213",
"Y1": "174",
"X2": "339",
"Y2": "269",
我还想将一个动作与这个可点击区域相关联,比如点击它时转到某个 Activity。
我不想使用此 link 中给出的解决方案。
clickable area of image
因为我有多个Imageview,每次的坐标都不一样。这些坐标来自服务器。
请提出解决此问题的最佳方法。
您可以观看触摸的位置:
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];
我想使用这些数据在 imageview 上创建一个可点击区域
"X1": "213",
"Y1": "174",
"X2": "339",
"Y2": "269",
我还想将一个动作与这个可点击区域相关联,比如点击它时转到某个 Activity。 我不想使用此 link 中给出的解决方案。 clickable area of image
因为我有多个Imageview,每次的坐标都不一样。这些坐标来自服务器。
请提出解决此问题的最佳方法。
您可以观看触摸的位置:
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];