Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中拖动ImageView?_Android_Bitmap - Fatal编程技术网

如何在Android中拖动ImageView?

如何在Android中拖动ImageView?,android,bitmap,Android,Bitmap,我花了一些时间研究这个问题,但仍然没有找到一个很好的答案 我想在屏幕上拖动一个ImageView。不是拖放,而是实际的拖放 本教程非常有用: 它的工作原理非常完美,但它的设计目的是拖动位图,而不是图像视图。我尝试用ImageView替换位图,但我不确定Canvas和ImageView在onDraw方法中是如何交互的。我试过imageView.draw(画布);这似乎不起作用-ImageView根本不显示 位图并不理想,因为您不能像使用ImageView那样为位图添加边框 我还希望能够将Imag

我花了一些时间研究这个问题,但仍然没有找到一个很好的答案

我想在屏幕上拖动一个ImageView。不是拖放,而是实际的拖放

本教程非常有用:

它的工作原理非常完美,但它的设计目的是拖动位图,而不是图像视图。我尝试用ImageView替换位图,但我不确定Canvas和ImageView在onDraw方法中是如何交互的。我试过imageView.draw(画布);这似乎不起作用-ImageView根本不显示

位图并不理想,因为您不能像使用ImageView那样为位图添加边框

我还希望能够将ImageView从屏幕上弹出

有什么建议吗


提前感谢。

您可以创建与所有屏幕匹配的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