我是安卓应用程序的新手,希望能得到专家的指导。我现在正在为我的最后一个项目做棋盘游戏。我面临的问题是,如何使用图像按钮为我的配电箱设置协调器?我用那种方式正确吗?
您可以使用GridView
来包含您的棋盘格。然后,您可以简单地将一个支持检查器方形对象的数组绑定到网格,并创建自己的BaseAdapter
以在每个网格单元中显示一个ImageButton
。
我会创建一个自定义View
并将其设置为内容背景。即
CheckerBoard board = new CheckerBoard(this);
setContentView(board);
在上面的代码中,CheckerBoard
扩展了View
。在CheckerBoard
类中,您可以使用传入的宽度和高度以编程方式将视图划分为一个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…
}
有很多东西可以让这项工作正常进行,但我能给你的最好的资源是:
http://mindtherobot.com/blog/272/android-custom-ui-making-a-vintage-thermometer/
它将引导您完成创建自定义View
的过程。一旦创建了CheckerBoard
,只需将每个正方形映射到二维布尔数组(如果每个元素被一个棋子占据,则每个元素都将是true
),然后跟踪用户在屏幕上的触摸输入。