使用onTouchListener调整视图大小

时间:2018-02-21 09:26:09

标签: android resize ontouchlistener

您好我正在创建一个应用程序,当我开始拖动指定用于调整大小的按钮时,该应用程序只会调整视图大小。

要调整大小的布局声明为:resizeAbleLayout,用于拖动以调整该布局大小的按钮被声明为:btnResize

我已经能够调整视图的大小,但是当我完成视图的大小调整并再次开始调整大小时,它不会从我离开它的大小开始调整大小。

我的问题是,如何保存视图的最后调整大小的位置并平滑地调整大小而不会突然缩小? :d

这是我用于btnResize的代码:

  btnResize.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            int x=(int)event.getX();
            int y=(int)event.getY();
                switch (event.getAction()){
                    case MotionEvent.ACTION_MOVE:
                        resizeAbleLayout.getLayoutParams().width = x;
                        resizeAbleLayout.getLayoutParams().height = y;
                        resizeAbleLayout.requestLayout();
                        break;
                }
            return true;
        }
    });

提前感谢您的帮助! :d

1 个答案:

答案 0 :(得分:1)

尝试使用+=-=不要使用=

switch (event.getAction()){
     case MotionEvent.ACTION_MOVE:
     resizeAbleLayout.getLayoutParams().width += x/Math.abs(x);
     resizeAbleLayout.getLayoutParams().height += y/Math.abs(y);
     resizeAbleLayout.requestLayout();
     break;
}