Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
ICaxapI
0 / 0 / 0
Регистрация: 11.08.2016
Сообщений: 18
#1

Программная расстановка большого количества кнопок - Android

31.08.2016, 23:37. Просмотров 150. Ответов 2
Метки нет (Все метки)

Здравствуйте, переношу своё сетевое приложение на java "Морской бой" и столкнулся с небольшой проблемой, я совсем не понял, как можно программно расставлять кнопки, прошу помощи у более умных людей .
А вся проблема в том, что в десктопной версии я полностью сам расставляю кнопки, в коде сама вычисляется позиция, куда нужно поставить кнопку, а вот как каким образом расставить элементы на андройде я не знаю
+ даже если есть какой-то способ расставить точно по координатам - то теряется поддержка разных разрешений.
Вот Java код, который я использую в десктоп версии, помогите перенести пожалуйста (или хотя-бы просто задайте направление куда копать и что изучать)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 private void paintCells(int xLoc, int yLoc, int xSiz, int ySiz, boolean rival){
        int xLocM = xLoc;
        int defY = yLoc;
        byte i = 0;
        while (i < 100){
            int x = i / 10; //это находит первую цифру двухзначного числа (прим из числа 82 получается 8)
            int y = i - (Math.round(i/10)*10); //это находит вторую цифру двухзначного числа (прим из числа 82 получается 2)
            if (!rival) {
                MyCells cell = new MyCells(); //новый объект 
                myCellsList[x][y] = cell;        // записываем его в массив
                cell.x = (byte)  x;                 //записываем в ячейку её координаты
                cell.y = (byte)  y;
                cell.index = i;                       
                cell.setLocation(xLocM, yLoc); //ставим кнопку на координаты xLocM, yLoc
                cell.setSize(xSiz, ySiz);          // ставим заданный размер в пикселях
                cell.setBorder(null);               // убираю обводку
                add(cell);                             // добавляю на панель
            }
            if (rival){
                RivalCells cell = new RivalCells();  //точно такой-же код, но записываем ссылки на ячейки в другой массив
                rivalCellsList[x][y] = cell;
                cell.x = (byte)  x;
                cell.y = (byte)  y;
                cell.index = i;
                cell.setLocation(xLocM, yLoc);
                cell.setSize(xSiz, ySiz);
                cell.setBorder(null);
                add(cell);
            }
            i++;
            if (xGrid < 9){                                            //если ячейка по вертикали не 9 (с 0), то добавляем к x координате 
                xLocM = xLoc + (xSiz * (xGrid + 1));         //размер ячейки, и инкрементируем колличество уже нарисованных 
                xGrid++;                                               //по горизонтали
            } else{
                yLoc = yLoc + ySiz;                                 //иначе инкрементируем y координату, и ставим вертикальный
                xGrid = 0;                                              //счётчик в 0
                xLocM = xLoc;
            }
        }
        JPanel visual = new JPanel();                                                    //Создаём панель для буковок
        visual.setSize(xSiz * 10 + 30, ySiz * 10 + 30);
        visual.setLocation(xLoc - 20, defY - 20);                                      //тут везде украшательства
        visual.setBorder(BorderFactory.createEtchedBorder());
        visual.setVisible(true);
        visual.setLayout(null);
        paintLine("АБВГДЕЁЖЗИ" , visual, xSiz * 10 + 40 , true);             //рисует линию из заданных букв, в
        paintLine("0123456789" , visual, xSiz * 10 + 40 , false);              // заданном направлении
        add(visual);
    }
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2016, 23:37     Программная расстановка большого количества кнопок
Посмотрите здесь:

Массив из большого количества кнопок Android
Android Программная выборка из БД
Загрузка и отображение большого количества картинок с памяти телефона Android
Сохранение большого количества записей ключ-значение Android
Android Расстановка фигур в лабиринте
Декомпилляция большого проекта Android
ImageView большого размера Android
Android При загрузке большого количества картинок библиотекой Picasso заканчивается память
Android Чек большого количества togglebutton при прогрессе seekBar тормозит
Android Парсинг большого xml
Android Хранение и использование большого количества изображений
Программная локализация приложения Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
резкий
1963 / 1698 / 526
Регистрация: 12.05.2014
Сообщений: 6,053
Завершенные тесты: 1
01.09.2016, 11:36     Программная расстановка большого количества кнопок #2
Цитата Сообщение от ICaxapI Посмотреть сообщение
андройде

начни с Hello World
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,502
01.09.2016, 11:46     Программная расстановка большого количества кнопок #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от ICaxapI Посмотреть сообщение
как можно программно расставлять кнопки
Начни с этого: http://startandroid.ru/ru/uroki/vse-...outparams.html
Yandex
Объявления
01.09.2016, 11:46     Программная расстановка большого количества кнопок
Ответ Создать тему
Опции темы

Текущее время: 18:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru