[英]How to determined if the user touch my bitmap?
如何确定用户是否单击了ImageView的某些区域?
我在设置(x,y)坐标范围以检测何时单击或不单击特定位图时有些困难。
例如,如果位图的位置是(75,75),请说。 即,左上角在此点,那么,如果用户在(X,Y)点触摸屏幕,则简单的条件为:
我在画布上绘制的图像位置为4(75,75),(645,75),(1215,75)和(75,490)。
它无法确定我单击的内容,它总是给我消息“ mImaget”,而不是其他消息。
@Override
public boolean onTouch(View v, MotionEvent event) {
int x = (int) event.getX();
int y = (int) event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
if (x >= 75 && x < (75 + mImaget.getWidth())
&& y >= 75 && y < (75 + mImaget.getHeight())) {
Toast.makeText(getActivity(), "mImaget", Toast.LENGTH_SHORT).show();
Log.e("TOUCHED", "X: " + x + " Y: " + y + mImaget.getWidth() + "-" + mImaget.getHeight());
}
if (x >= 645 && x < (645 + mImageth.getWidth())
&& y >= 75 && y < (75 + mImageth.getHeight())) {
Toast.makeText(getActivity(), "mImageth", Toast.LENGTH_SHORT).show();
Log.e("TOUCHED", "X: " + x + " Y: " + y + mImageth.getWidth() + "-" + mImageth.getHeight());
}
if (x >= 1215 && x < (1215 + mImagef.getWidth())
&& y >= 75 && y < (75 + mImagef.getHeight())) {
Toast.makeText(getActivity(), "mImagef", Toast.LENGTH_SHORT).show();
Log.e("TOUCHED", "X: " + x + " Y: " + y + mImagef.getWidth() + "-" + mImagef.getHeight());
}
if (x >= 75 && x < (75 + mImageo.getWidth())
&& y >= 490 && y < (490 + mImageo.getHeight())) {
Toast.makeText(getActivity(), "mImageo", Toast.LENGTH_SHORT).show();
Log.e("TOUCHED", "X: " + x + " Y: " + y + mImageo.getWidth() + "-" + mImageo.getHeight());
}
return true;
}
return false;
}
谢谢 :)
@Override
public boolean onTouch(View v, MotionEvent event) {
int x = (int) event.getX();
int y = (int) event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
if (x >= 75 && x < (75 + mBack.getWidth())
&& y >= 75 && y < (75 + mBack.getHeight())) {
Toast.makeText(getActivity(), "Zone1: " + x +"-" + y, Toast.LENGTH_SHORT).show();
}
if (x >= 645 && x < (645 + mBack.getWidth())
&& y >= 75 && y < (75 + mBack.getHeight())) {
Toast.makeText(getActivity(), "Zone2: " + x +"-" + y, Toast.LENGTH_SHORT).show();
}
if (x >= 1215 && x < (1215 + mBack.getWidth())
&& y >= 75 && y < (75 + mBack.getHeight())) {
Toast.makeText(getActivity(), "Zone3: " + x +"-" + y, Toast.LENGTH_SHORT).show();
}
if (x >= 75 && x < (75 + mBack.getWidth())
&& y >= 490 && y < (490 + mBack.getHeight())) {
Toast.makeText(getActivity(), "Zone4: " + x +"-" + y, Toast.LENGTH_SHORT).show();
}
Log.d("TOUCHED", "X: " + x + " Y: " + y + mImaget.getWidth() + "-" + mImaget.getHeight());
return true;
}
return false;
}
您能否尝试一下代码的这一部分而不是您的示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.