用手指拖动Android图像视图表现奇怪
问题描述:
我正在实现imageview拖动功能到我的应用程序。 我尝试了下面的代码,但它的行为很奇怪。当我尝试拖动图像 它改变了位置,并在移动过程中显示缩放图像。 我想用手指平滑地移动图像。用手指拖动Android图像视图表现奇怪
请帮我解决这个问题
@Override
public boolean onTouch(View v, MotionEvent event) {
final int X = (int) event.getRawX();
final int Y = (int) event.getRawY();
MarginLayoutParams marginParams = new MarginLayoutParams(mImagePreView.getLayoutParams());
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
_xDelta = X - marginParams.leftMargin;
_yDelta = Y - marginParams.topMargin;
break;
case MotionEvent.ACTION_MOVE:
marginParams.leftMargin = X-_xDelta;
marginParams.topMargin = Y - _yDelta;
marginParams.rightMargin = -250;
marginParams.bottomMargin = -250;
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(marginParams);
mImagePreView.setLayoutParams(layoutParams);
break;
default:
break;
}
return true;
}
答
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) mImagePreView.getLayoutParams();
layoutParams.leftMargin += offsetX;
layoutParams.topMargin += offsetY;
而且有错误:
_xDelta = X - marginParams.leftMargin;
_yDelta = Y - marginParams.topMargin;
X - 在绝对坐标事件,marginParams.leftMargin - 坐标是相对父布局