[英]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.