如何在Android中拖动ImageView?

时间:2014-10-09 12:46:14

标签: android bitmap

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

我想要的是在屏幕上拖动ImageView。不是拖放,而是实际阻力。

本教程非常有用:

http://code.tutsplus.com/tutorials/android-gesture--mobile-2239

它工作得很完美,但它设计用于拖动位图,而不是ImageView。我尝试用ImageView替换Bitmap,但我不确定Canvas和ImageView如何在onDraw方法中进行交互。我试过imageView.draw(canvas);这似乎不起作用 - ImageView根本没有出现。

位图不是主意,因为您不能像使用ImageView那样为它们添加边框。

我也希望能够将ImageView从屏幕上移开。

有什么建议吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以创建与您的所有屏幕匹配的RelativeLayout。在布局中创建ImageView。

OnTouchListener侦听器设置为相对布局以处理手指坐标。

之后你可以这样写:

    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 event)一样,您可以将imageView拖动到所需的位置。

我希望这能帮到你!