如何在Android中拖动ImageView?
我花了一些时间研究这个问题,但仍然没有找到一个很好的答案 我想在屏幕上拖动一个ImageView。不是拖放,而是实际的拖放 本教程非常有用: 它的工作原理非常完美,但它的设计目的是拖动位图,而不是图像视图。我尝试用ImageView替换位图,但我不确定Canvas和ImageView在onDraw方法中是如何交互的。我试过imageView.draw(画布);这似乎不起作用-ImageView根本不显示 位图并不理想,因为您不能像使用ImageView那样为位图添加边框 我还希望能够将ImageView从屏幕上弹出 有什么建议吗如何在Android中拖动ImageView?,android,bitmap,Android,Bitmap,我花了一些时间研究这个问题,但仍然没有找到一个很好的答案 我想在屏幕上拖动一个ImageView。不是拖放,而是实际的拖放 本教程非常有用: 它的工作原理非常完美,但它的设计目的是拖动位图,而不是图像视图。我尝试用ImageView替换位图,但我不确定Canvas和ImageView在onDraw方法中是如何交互的。我试过imageView.draw(画布);这似乎不起作用-ImageView根本不显示 位图并不理想,因为您不能像使用ImageView那样为位图添加边框 我还希望能够将Imag
提前感谢。您可以创建与所有屏幕匹配的RelativeLayout。在布局中,创建ImageView 将
OnTouchListener
listener设置为相对布局,以处理手指坐标
之后,你可以写这样的东西:
public boolean onTouch(View v, MotionEvent event)
{
if (event.getAction() == MotionEvent.ACTION_MOVE)
{
move(event);
}
}
public void move(MotionEvent event)
{
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) mImageView.getLayoutParams();
layoutParams.topMargin = event.getY();
layoutParams.leftMargin = event.getX();
mImageView.setLayoutParams(layoutParams);
}
像使用方法move(MotionEvent)
一样,您可以将图像视图拖动到需要的位置
我希望这对你有帮助 没有那么完整。您只需要在ImageView上使用侦听器。它可以是“ondraglistener”或“ontouchlistener”。太棒了!我该如何实现fling呢?出于某种原因,当我使用这种方法时,如果按住imageview,会显示两个图像并闪烁。不理想。我不知道你的真实代码是什么,在这种情况下无法回答。但我认为在
onTouch
中,您经常会收到新的坐标。您可以尝试过滤接收到的坐标,检查手指移动的时间,如果超过5或10像素,则移动imageView