Как я могу передать Touch Listeners в пользовательский вид для перетаскивания?

У меня есть вопрос относительно обработки сенсорных событий для CustomView . Я динамически добавляю настраиваемое представление в макет ( т.е. FrameLayout). Эти пользовательские представления имеют touchListeners для вытягивания точек в углах (это показано на изображении ниже). Наряду с этим я должен перетаскивать общий вид на экране, если пользователь касается других точек, кроме этих угловых точек (цветовая область на изображении), должен перетаскивать вид, иначе нет, а также если пользователь касается вне этого просмотр, я не хочу запускать какие-либо сенсорные слушатели.

Check This Image

Я могу вытащить эти точки с помощью этого кода

@Override
public boolean onTouchEvent(MotionEvent event) {
    switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:

        if (topTouchArea.contains(event.getX(), event.getY())) {                
            currentTouch = TOUCH_TOP;
        } else if (RightTouchArea.contains(event.getX(),event.getY())) {                
            currentTouch = TOUCH_RIGHT;
        } else if (LeftTouchArea.contains(event.getX(),event.getY())) {            
            currentTouch = TOUCH_LEFT;
        } else {
            return false; //Return false if user touches none of the corners
        }
        return true; 
    case MotionEvent.ACTION_MOVE:

        switch (currentTouch) {
        case TOUCH_TOP:              
             top.x = event.getX();
             top.y = event.getY();                            
             invalidate();
             return true;
        case TOUCH_RIGHT:                
             Right.x = event.getX();
             Right.y = event.getY();                
             invalidate();
             return true;
        case TOUCH_LEFT:                 
             Left.x = event.getX();
             Left.y = event.getY();             
             invalidate();
             return true;       
        }         

    case MotionEvent.ACTION_UP:

        switch (currentTouch) {
        case TOUCH_TOP:
             top.x = event.getX();
             top.y = event.getY();                
             invalidate();
             currentTouch = NONE;
             return true;
        case TOUCH_RIGHT:
             Right.x = event.getX();
             Right.y = event.getY();             
             invalidate();
             currentTouch = NONE;
             return true;
        case TOUCH_LEFT:
            Left.x = event.getX();
             Left.y = event.getY();               
             invalidate();
             currentTouch = NONE;
             return true;      
        }         
        return false;
    }
    return false;
}

Как я могу добиться этого перетаскивания вместе с указанными выше символами формата CustomView....

6
задан RajaReddy PolamReddy 21 June 2012 в 11:23
поделиться