受到Ami的响应的启发,但发现MotionEvent#getX()/ getY()以及View#getTop()/ etc返回坐标和父视图的坐标,我最后在屏幕坐标下操作以下操作,让我工作跨ViewGroups:
        private boolean inRegion(float x, float y, View v) {
            v.getLocationOnScreen(mCoordBuffer);
            return mCoordBuffer[0] + v.getWidth() > x &&    // right edge
                   mCoordBuffer[1] + v.getHeight() > y &&   // bottom edge
                   mCoordBuffer[0] < x &&                   // left edge
                   mCoordBuffer[1] < y;                     // top edge
        }
Run Code Online (Sandbox Code Playgroud)
其在OnTouchListener中的用法是:
        boolean inside = inRegion(event.getRawX(), event.getRawY(), targetView);
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           5629 次  |  
        
|   最近记录:  |