在Android中拖放重叠的ImageView

时间:2010-07-05 10:44:10

标签: android drag-and-drop imageview

我有一个由10x10正方形组成的桌面式游戏板。每个方块都是PNG图像。在这些方块的顶部,我想放置可以在正方形上拖放的瓷砖。

关于观点的最佳方法是什么?

是否可以有两层,其中第一层是ImageView的网格,代表电路板。那么是否可以让瓷砖成为一个ImageView,它可以“叠加”在代表电路板的ImageView上面?

欢迎任何好的设计理念!

感谢。

/亨里克

2 个答案:

答案 0 :(得分:3)

在视图中覆盖onTouchEvent:

@Override
public boolean onTouchEvent(MotionEvent event) {
    super.onTouchEvent(event);

    if (!mEnable) {
        return false;
    }

    int action = event.getAction();
    int x = (int)event.getX();
    int y = (int)event.getY();

    switch (action) {
    case MotionEvent.ACTION_DOWN:
        onTouchActionDown(x, y);
        break;
    case MotionEvent.ACTION_MOVE:
        onTouchActionMove(x, y);
        break;
    case MotionEvent.ACTION_UP:
        onTouchActionUp(x, y);
        break;
    }

    return true;
}

然后在onTouchActionUp / Down中使用坐标并重新绘制图像资源,即使视图无效()。

覆盖onDraw以绘制拖动的图形:

@Override
protected void onDraw(Canvas canvas)
   drawMyDragGfx();
}

答案 1 :(得分:2)

我在视图中对onDrawonTouchEvent进行了覆盖。即我自己做了拖拉画。

像魅力一样工作: - )