2016-11-01 8 views
1

Итак, я пытаюсь сделать небольшую игру для Android. Речь идет о включении и выключении света. У меня есть 25 ImageButtons, и когда я нажимаю один, мне нужны соседние (вверх, влево, вниз, вправо), чтобы изменить тоже. Дело в том, что я не могу найти способ получить/идентифицировать эти кнопки. Я попытался использовать «view.getX()» и «view.getY()», но не знаю, как правильно их реализовать (если таковой имеется). Вот код, я использую, чтобы изменить одну кнопку:Изменение изображения в соседних ImageButtons (Android)

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)); 
    } 
} 

я использую теги знать, если он включен или выключен и установить txtView с количеством огней ON. Но, насколько я могу получить соседние с этим? Спасибо заранее.

+2

Я рекомендую 2d массив для сортировки всех экземпляров кнопки в, то с помощью этой сетки, чтобы сделать то, что вы хотите ... легче, чем непосредственно находить их на дисплее. – TWL

ответ

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 ...

 Смежные вопросы

  • Нет связанных вопросов^_^