我正在寻找一种简单的方法来为Android上的棋盘游戏制作一个二维图标阵列。我在java中编写了一个游戏,但它使用了swing,我现在正在尝试为android重写它。我已经搜遍了所有已经找到了制作二维阵列的方法,但我现在不知道如何用图标填充它。任何帮助,将不胜感激。这是我使用swing lib的java代码。):
spots = new JButton[15][15];
grid = new JPanel(new GridLayout(15, 15));
for (int i = 0; i < spots.length; i++) {
for (int j = 0; j < spots.length; j++) {
spots[i][j] = new JButton();
spots[i][j].setActionCommand(i + ":" + j);
spots[i][j].addActionListener(this);
grid.add(spots[i][j]);
spots[i][j].setIcon(backgroundIcon);
}
}
答案 0 :(得分:2)
您需要创建一个ImageView[][]
来保存您的图标。您可以使用GridView
来显示它们。这是一个相当固定的问题,所以我建议使用ImageView[]
或List<ImageView>
。看看这个sample。
注意:您可以设置ImageView的OnClickListener
。
答案 1 :(得分:2)
我个人认为您应该使用GridView并将点(使用自定义ListAdapter)作为列表而不是2d数组进行管理。您可以在列表中包装函数,这可以将其视为2D数组。否则,您将不得不从头开始处理自定义视图和适配器。此外,尝试从Spring应用程序导入太多代码可能会变得混乱
如果您真的想要使用2D数组,可以为数组中的每个元素创建一组ImageViews的布局,并使用您的xml样式属性(android:layout_below
android:layout_toRightOf
)创造板子外观。
然后,您可以使用这些图像视图的句柄填充您的二维数组,例如:
spots[0][0] = findViewById(R.id.coords_0_0);
然后你可以打电话。
spots[0][0].setImageResource(R.image.newPiece);
当您想要更改时