2016-03-11 15 views
0

是否可以創建一個方法來接收事件和視圖並確定事件是否發生在視圖座標內?瞭解視圖內是否發生MotionEvent

東西線沿線的:

private boolean isEventOnTopOfView(MotionEvent event, View view) {...} 

回答

0

此實現似乎爲我工作:

private boolean isEventOnTopOfView(MotionEvent event, View view) { 
    return isViewContains(view,(int)event.getRawX(),(int)event.getRawY()); 
} 

private boolean isViewContains(View view, int rx, int ry) { 
    int[] location = new int[2]; 
    view.getLocationOnScreen(location); 
    int x = location[0]; 
    int y = location[1]; 
    int w = view.getWidth(); 
    int h = view.getHeight(); 

    if (rx < x || rx > x + w || ry < y || ry > y + h) { 
     return false; 
    } 
    return true; 
} 
0

可以使用監聽器,如建議here

View myView = findViewById(R.id.my_view); 
myView.setOnTouchListener(new OnTouchListener() { 
    public boolean onTouch(View v, MotionEvent event) { 
     // Whatever you want to do.... you can update a boolean flag or anything else  
     return true; 
    } 
}); 
相關問題