可点击区域我想用这个数据Android的 - 创建的ImageView
"X1": "213",
"Y1": "174",
"X2": "339",
"Y2": "269",
而且我想喜欢去一些活动的行动与此可点击区域关联到创建的ImageView可点击区域时,自来水就可以了。 我不想使用此链接中给出的解决方案。 clickable area of image
因为我有多个Imageviews和坐标可以是不同的每一次。这些纵坐标来自服务器。
请提出处理此问题的最佳方法。
可点击区域我想用这个数据Android的 - 创建的ImageView
"X1": "213",
"Y1": "174",
"X2": "339",
"Y2": "269",
而且我想喜欢去一些活动的行动与此可点击区域关联到创建的ImageView可点击区域时,自来水就可以了。 我不想使用此链接中给出的解决方案。 clickable area of image
因为我有多个Imageviews和坐标可以是不同的每一次。这些纵坐标来自服务器。
请提出处理此问题的最佳方法。
,您可以观看触摸位置:
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];
为此,我想首先我需要缩放我的图像以获得新的屏幕尺寸,然后缩放我的坐标以获得新的屏幕宽度,然后才能使用此监听器。我是正确的先生? –
让我试试这个解决方案,然后我会回复你。 –
感谢哥们。我已将imageX和ImageY从PX转换为Dp,现在我认为我几乎接近我的解决方案。再次非常感谢。 –
您可以使用提供的坐标创建RectF对象,并使用onTouchListner对imageview进行比较,并将您的rectf与点击区域进行比较。 – USKMobility
您可以尝试为整个布局使用Rectangles('Rect()'),'onTouchListener()',并检查事件坐标是否在矩形内。还有一个名为['AbsoluteLayout']的布局(http://developer.android.com/reference/android/widget/AbsoluteLayout.html),您可以在其中指定确切的位置,我不建议这样做,如果使用它,则支持不同的屏幕尺寸。 – yennsarah
矩形(Rect())是否也会根据屏幕大小缩放给定的坐标?因为我的imageview在宽度上是match_parent,在高度上是wrap_content? –