使用 onTouchListener 调整视图大小
Resizing view using 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
尝试使用 +=
或 -=
不要使用 =
:
switch (event.getAction()){
case MotionEvent.ACTION_MOVE:
resizeAbleLayout.getLayoutParams().width += x/Math.abs(x);
resizeAbleLayout.getLayoutParams().height += y/Math.abs(y);
resizeAbleLayout.requestLayout();
break;
}
您好,我正在创建一个应用程序,当我开始拖动指定用于调整大小时的按钮时,它会简单地调整视图的大小。
要调整大小的布局声明为: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
尝试使用 +=
或 -=
不要使用 =
:
switch (event.getAction()){
case MotionEvent.ACTION_MOVE:
resizeAbleLayout.getLayoutParams().width += x/Math.abs(x);
resizeAbleLayout.getLayoutParams().height += y/Math.abs(y);
resizeAbleLayout.requestLayout();
break;
}