Android - Остановить тень от зоны

Я не могу понять, как не дать тени покинуть определенную зону при перетаскивании.

У вас есть идеи, как это сделать?

Заранее спасибо

1 ответ

Решение

Итак, я наконец-то решил это только с помощью onTouch:

@Override
    public boolean onTouch(View v, MotionEvent event) {

        // Handles each of the expected events
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:

            if (initPosX == 0 && initPosY == 0) {
                initPosX = myImage.getX();
                initPosY = myImage.getY();
            }

            // First finger down
            text.setText("ACTION_DOWN x: " + event.getRawX() + ", y: " + event.getRawY());
            break;
        case MotionEvent.ACTION_UP:
            // Last finger to be removed
            text.setText("ACTION_UP x: " + event.getRawX() + ", y: " + event.getRawY());
            myImage.setX(initPosX);
            myImage.setY(initPosY);
            break;
        case MotionEvent.ACTION_MOVE:
            // A finger moves

            float calc_X = event.getRawX() - initPosX / 2 + myImage.getWidth() / 2;
            float calc_Y = event.getRawY() - initPosY / 2 - myImage.getHeight() / 2;

            if(calc_X > initPosX - delta && calc_X < initPosX + delta)
                myImage.setX(calc_X);

            if(calc_Y > initPosY - delta && calc_Y < initPosY + delta)
                myImage.setY(calc_Y);

            text.setText("X: " + event.getRawX() + "\nY: " + event.getRawY());

            break;
        }

        return true;
    }

Это такой позор, хотя onDragListtener не способен делать такие базовые вещи... Я думаю, команда Android сделала это нарочно.

Отдельное спасибо pskink.

Другие вопросы по тегам