簡體   English   中英

如何確定用戶是否觸摸了我的位圖?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM