SunJenry/FloatWindow

可否把拖动加进去

Closed this issue · 3 comments

这个修改显示位置的时候这个方法不准确
`private class FloatingOnTouchListener implements View.OnTouchListener {
private int x;
private int y;

    @Override
    public boolean onTouch(View view, MotionEvent event) {
        LogUtils.i("onTouch: xy: (" + (int) event.getRawX() + "," + (int) event.getRawY() + ")   (" + mLayoutParams.x + "," + mLayoutParams.y + ")");

        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                x = (int) event.getRawX();
                y = (int) event.getRawY();
                break;
            case MotionEvent.ACTION_MOVE:
                int nowX = (int) event.getRawX();
                int nowY = (int) event.getRawY();
                int movedX = nowX - x;
                int movedY = nowY - y;
                x = nowX;
                y = nowY;
                LogUtils.i("Move (" + movedX + "," + movedY + ")");
                mLayoutParams.x = mLayoutParams.x + movedX;
                mLayoutParams.y = mLayoutParams.y + movedY;
                mWindowManager.updateViewLayout(view, mLayoutParams);
                break;
            default:
                break;
        }
        return true;
    }
}`

mLayoutParams.y = -ScreenUtils.getScreenHeight() / 2; mLayoutParams.x = SizeUtils.getMeasuredWidth(mInflate) / 2;
我增加了这两句代码 感觉感动还是有问题 应该是原点没有分析到位 触摸原点是左上角 拖动原点是屏幕中心 我设置了
mLayoutParams.gravity = Gravity.CENTER;
感觉理论上是
拖起来还是不圆润

@zjianflys 已更新跟随手势拖动效果demo,测试感觉很流畅。另外mLayoutParams 的x,y是左上角坐标吧

好的 谢谢