所以我试图为Android制作一款小游戏。关于打开和关闭灯的问题。我有25个ImageButtons,当我按下一个时,我需要相邻的(向上,向左,向下,向右)也要改变。 问题是,我无法找到获取/识别此按钮的方法。 我尝试使用" view.getX()"和" view.getY()"但是不知道如何以正确的方式实施它们(如果有的话)。 这是我用来更改ONE按钮的代码:
public void change(View view)
{
String state = view.getTag().toString();
if (state.equals("on"))
{
view.setBackgroundDrawable(getResources().getDrawable(R.drawable.lightOff));
view.setTag("off");
lightsOn -= 1;
txtNumLights.setText(String.valueOf(lightsOn));
}
if (state.equals("off")) {
view.setBackgroundDrawable(getResources().getDrawable(R.drawable.lightOn));
view.setTag("on");
lightsOn += 1;
txtNumLights.setText(String.valueOf(lightsOn));
}
}
我使用标签知道它是否为On或Off,并设置一个带有ON灯数的txtView。 但是,到目前为止,我如何获得与此相邻的那些? 提前谢谢。
答案 0 :(得分:0)
您必须将按钮存储在二维数组上。
当您单击一个按钮时,您可以在感兴趣的按钮上设置标记和背景。
伪代码:
If (button_matrix[row][column] is clicked) then
Set_tag_background (button_matrix[row-1][column])
Set_tag_background (button_matrix[row+1][column])
Set_tag_background (button_matrix[row][column-1])
Set_tag_background (button_matrix[row][column+1])
Set_tag_background (button_matrix[row][column])
...
关于实现,你应该注意不要生成ArrayOutOfBoundsException ...