点击Android的屏幕上的ImageView
问题描述:
我的问题是点击imageview,并知道在图像(通过ImageView调整大小),我点击。点击Android的屏幕上的ImageView
我现在的算法是:
上的ImageView的onTouch方法,得到MotionEvent的X和ÿ立场和做数学题
int realX = (X/this.getWidth()) * bitmapWidth;
int realY = (Y/this.getHeight()) * bitmapHeight;
凡bitpmapWidth和bitmapHeight来自原始位图。
任何人都可以帮助我吗?
答
几乎是正确的,数学应该只是有点不同。也请记住的ImageView的getHeight()和的getWidth()会的onCreate中0,我已经使用信息从这个答案getWidth() and getHeight() of View returns 0使用获取的宽度和高度,一旦它可用
iv = (ImageView) findViewById(R.id.img);
iv.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
iv.getViewTreeObserver().removeOnGlobalLayoutListener(this);
xScaleFactor = iv.getWidth()/originalBitmapWidth;
yScaleFactor = iv.getHeight()/originalBitmapHeight;
Log.v(TAG, "xScaleFactor:" + xScaleFactor + " yScaleFactor:" + yScaleFactor);
}
});
iv.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
int touchX = (int) event.getX();
int touchY = (int) event.getY();
int realX = touchX/xScaleFactor;
int realY = touchY/yScaleFactor;
Log.v(TAG, "realImageX:" + realX + " realImageY:" + realY);
return false;
}
});
+0
这就是答案,谢谢@nikita! –
确实想知道哪个区域,您点击图片?就像如果图像有按钮,那么你的需求被发现天气你点击图像中的按钮?这是你的要求吗? –
你好Varun,这会有所帮助,但不是。谢谢。 –