Android - 阻止阴影被拖出区域

时间:2014-03-29 11:05:49

标签: android drag shadow zone

我无法确定在拖动时如何阻止阴影离开特定区域。

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

提前致谢

1 个答案:

答案 0 :(得分: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。