在Android中拖放重叠的ImageView

3
我有一个由10x10个方块组成的桌面游戏板,每个方块都是PNG图像。我想在这些方块上放置可以拖放的瓷砖。
关于视图,我的最佳方法是什么?
是否可以有两个层,其中第一层是ImageView的网格,表示棋盘。然后让瓷砖也成为ImageView,可以“堆叠”在表示棋盘的ImageView之上吗?
欢迎任何好的设计想法!
谢谢。
/ Henrik
2个回答

3

在您的View中重写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();
}

2

我在我的视图中对onDrawonTouchEvent进行了重写。也就是说,我自己实现了拖放绘图。

效果非常好 :-)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接