如何在Android应用程序中为我的跳棋游戏设置坐标
我是Android应用程序的新手,希望能得到专家的指导。我现在正在为我的最后一个项目做跳棋棋盘游戏。我面临的问题是,如何使用“图像”按钮设置板盒的协调器?如何在Android应用程序中为我的跳棋游戏设置坐标,android,Android,我是Android应用程序的新手,希望能得到专家的指导。我现在正在为我的最后一个项目做跳棋棋盘游戏。我面临的问题是,如何使用“图像”按钮设置板盒的协调器? 我这样使用对吗?您可以使用网格视图来容纳棋盘方块。然后,您可以简单地将一组backing checker square对象绑定到网格,并创建自己的BaseAdapter以在每个网格单元中显示ImageButton。我将创建一个自定义视图,并将其设置为内容背景。 即 在上面的代码中,棋盘格扩展了视图。在checkboard类中,可以使用传入的宽
我这样使用对吗?您可以使用
网格视图来容纳棋盘方块。然后,您可以简单地将一组backing checker square对象绑定到网格,并创建自己的BaseAdapter
以在每个网格单元中显示ImageButton
。我将创建一个自定义视图
,并将其设置为内容背景。
即
在上面的代码中,棋盘格
扩展了视图
。在checkboard
类中,可以使用传入的宽度和高度以编程方式将视图划分为8 x 8网格。然后,您可以让该视图绘制网格,同时将每个区域绑定到二维数组。解释我心目中的层次结构有点复杂,但看看这个模型:
public class CheckerBoard extends View {
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
height = MeasureSpec.getSize(heightMeasureSpec);
width = MeasureSpec.getSize(widthMeasureSpec);
// A checkerboard is a square; this keeps the view's
// length and width the same size.
width = (height > width) ? height : width;
height = (height > width) ? width : height;
this.setMeasuredDimension(width, height);
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
//Log.i("VolumeGauge", "Size changed to " + w + "x" + h);
// This is where you divide up the view into 64
// pieces and paint them.
generateBackground();
}
Other methods here…
}
有很多东西可以让它正常工作,但我能给你的最好资源是:
它引导您完成创建自定义视图的过程。
一旦创建了棋盘格
,只需将每个方块映射到二维布尔数组(如果每个元素被播放的棋子占据,则每个元素都是true
),然后在屏幕上跟踪用户的触摸输入。看不到任何代码。请编辑您的问题!大家好,非常感谢,非常感谢!
public class CheckerBoard extends View {
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
height = MeasureSpec.getSize(heightMeasureSpec);
width = MeasureSpec.getSize(widthMeasureSpec);
// A checkerboard is a square; this keeps the view's
// length and width the same size.
width = (height > width) ? height : width;
height = (height > width) ? width : height;
this.setMeasuredDimension(width, height);
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
//Log.i("VolumeGauge", "Size changed to " + w + "x" + h);
// This is where you divide up the view into 64
// pieces and paint them.
generateBackground();
}
Other methods here…
}