android如何制作一个二维图标数组

时间:2011-12-13 22:30:03

标签: android multidimensional-array

我正在寻找一种简单的方法来为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);
            }
        }

2 个答案:

答案 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);

当您想要更改时