如何通过拖动其边缘或角来更改Android视图的大小?

时间:2017-09-05 11:30:24

标签: android

我希望让用户通过首先选择对其进行控制(长按)来更改视图的大小,然后拖动其中一个角(或边)并相应地调整其大小。

我已经覆盖了控制部分,但我想知道是否有一些东西可以让我调整大小除了必须从头开始创建这个机制。我应该通过覆盖onLongClick方法添加我的视图已经在用户拖动时翻译。

现在大多数应用中的“剪切”功能,只有调整大小。这是边缘“可拖动”的示例:

Example of the resize mechanics

1 个答案:

答案 0 :(得分:2)

我从构建裁剪器所需的图像中得到了什么。您绘制叠加的框架是视图因此只需覆盖View的onTouch()并使用新的点和大小使视图无效。

 @Override
public boolean onTouchEvent(MotionEvent event) {
    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            // check for the point
            // 1.if its exist inside the frame then move the frame on action move
            // 2. if its on edges then reassign the size of frame and invalidate your View
            // 3. if Outside the frame just ignore it
            onDown(event);
            return true;
        case MotionEvent.ACTION_MOVE:
            // Move your view here i.e assign new points and size as per event 
            invalidate();
            return true;
        case MotionEvent.ACTION_CANCEL:

            return true;
        case MotionEvent.ACTION_UP:

            return true;
    }
    return false;
}