Android, как сделать 2-мерный массив иконок - PullRequest
1 голос
/ 14 декабря 2011

Я ищу простой способ сделать двумерный массив иконок для настольной игры на андроид. Я написал игру на Java, но она использует качели, и сейчас я пытаюсь переписать ее для 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);
            }
        }

Ответы [ 2 ]

2 голосов
/ 14 декабря 2011

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

Если вы действительно хотите использовать 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);

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

2 голосов
/ 14 декабря 2011

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

Примечание: вы можете установить OnClickListener для ImageView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...