0

我不知道如何阻止阴影在被拖动时离开特定区域。

你对如何做到这一点有任何想法吗?

提前致谢

4

1 回答 1

0

好的,所以我最后只用了一个 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。

于 2014-04-26T13:05:57.070 回答