Android在RelativeLayout中拖动图像视图已调整大小

时间:2012-04-24 08:43:20

标签: android imageview drag

我目前正在制作一个Android应用程序,允许用户将一些列表中的图像添加到屏幕上,并允许用户在其上拖动图像。

我可以使用onTouch方法拖动图像。 但是当我将图像视图拖动到左侧或底部尺寸

时,我遇到了一个问题

图像视图将自动调整大小,无法将其拖动到布局中。

如何在不调整图像视图大小的情况下将其拖到布局外?

@Override
public boolean onTouch(View view, MotionEvent event)  {
    ImageView imageView = (ImageView)view;
    imageView.bringToFront();


    //  Handle event
    switch (event.getAction() & MotionEvent.ACTION_MASK)  {
        case MotionEvent.ACTION_DOWN:  {
            startPoint.set(event.getX(), event.getY());
            currentMode = EVENT_DRAG;
            break;
        }  

        case MotionEvent.ACTION_UP:
        case MotionEvent.ACTION_POINTER_UP:  {
            currentMode = EVENT_NONE;
            break;
        }  

        case MotionEvent.ACTION_MOVE:  {
            RelativeLayout.LayoutParams layoutPrarms = (RelativeLayout.LayoutParams)imageView.getLayoutParams();
            int left = layoutPrarms.leftMargin + (int)(event.getX() - startPoint.x);
            int top = layoutPrarms.topMargin + (int)(event.getY() - startPoint.y);
            layoutPrarms.leftMargin = left;
            layoutPrarms.topMargin = top;
            imageView.setLayoutParams(layoutPrarms);     
            break;
        }  
    }

    //  Indicate event was handled
    return true;
}

1 个答案:

答案 0 :(得分:1)

尝试将父布局设为LinearLayout。我只使用RelativeLayouts遇到了这个问题。