我有一个由 10x10 方格组成的桌面式游戏板。每个方块都是一个PNG图像。在这些正方形的顶部,我想放置可以拖放到正方形顶部的瓷砖。
关于视图,我最好的方法是什么?
是否可以有两层,其中第一层是代表板的 ImageView 网格。那么是否可以让图块成为一个 ImageView 也可以“堆叠”在代表板的 ImageView 顶部?
欢迎任何好的设计理念!
谢谢。
/ 亨里克
我有一个由 10x10 方格组成的桌面式游戏板。每个方块都是一个PNG图像。在这些正方形的顶部,我想放置可以拖放到正方形顶部的瓷砖。
关于视图,我最好的方法是什么?
是否可以有两层,其中第一层是代表板的 ImageView 网格。那么是否可以让图块成为一个 ImageView 也可以“堆叠”在代表板的 ImageView 顶部?
欢迎任何好的设计理念!
谢谢。
/ 亨里克
在您的视图中覆盖 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 中,只需使用坐标并重绘您的图像资源,即 invalidate() 您的视图。
覆盖 onDraw 以绘制被拖动的图形:
@Override
protected void onDraw(Canvas canvas)
drawMyDragGfx();
}
我在我的视图onDraw
上做了一个覆盖。onTouchEvent
即我自己完成了拖放绘图。
像魅力一样工作:-)