Android, как сделать 2-мерный массив иконок

1

Я ищу простой способ сделать двумерный массив значков для настольной игры на Android. Я написал игру в java, но он использует swing, и теперь я пытаюсь переписать его для Android. Я искал все и нашел способы сделать 2-мерный массив, но я не знаю, как заполнить его значками. Любая помощь будет оценена по достоинству. Вот мой код из java, используя swing lib.):

    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);
            }
        }
Теги:
multidimensional-array

2 ответа

2
Лучший ответ

Вам нужно создать ImageView[][] чтобы удерживать иконки. И вы можете использовать GridView для их отображения. Это проблема с фиксированным размером, поэтому я бы рекомендовал использовать ImageView[] или List<ImageView>. Взгляните на этот образец.

Примечание. Вы можете установить OnClickListener ImageView.

  • 0
    Спасибо за ответ. Я прошу прощения за то, что мне потребовалось так много времени, чтобы ответить, я не мог вспомнить какие-либо свои учетные данные для учетной записи.
  • 0
    ссылка мертва ...
2

Лично я думаю, что вы должны использовать GridView и управлять пятнами (с помощью Custom ListAdapter) в виде списка, а не массива 2d. Вы можете обернуть функции вокруг своего списка, что позволило бы рассматривать его как 2D-массив. В противном случае вам придется иметь дело с пользовательскими видами и адаптерами с самого начала. Также попытка импортировать слишком много кода из приложения Spring может стать беспорядочным

Если вы действительно хотите использовать 2D-массив, вы можете создать свой макет с группой ImageViews для каждого элемента массива и использовать атрибуты стиля xml (android:layout_below android:layout_toRightOf), чтобы создать внешний вид платы.

Затем вы можете заполнить массив 2d дескрипторами этих изображений, например:

spots[0][0] = findViewById(R.id.coords_0_0);

Тогда можно позвонить.

spots[0][0].setImageResource(R.image.newPiece);

Когда вы хотите изменить

  • 0
    Спасибо, и я тоже извиняюсь перед тобой. Я обновил учетные данные своей учетной записи сейчас, чтобы я мог войти снова. Ваш ответ также был весьма полезным.
  • 0
    @ Нисси без проблем, если вы нашли это полезным, отметьте это
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню