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

Как подогнать ряд кнопок в TableLayout под ширину экрана? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android GPS координаты http://www.cyberforum.ru/android-dev/thread1643772.html
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); //Метод получения контактных данных getContacts(); // на выходе output - содержит все контакты String lng; String lat;
Программирование Android Ругается на FragmentTransaction Пишу Bluetooth-чат. Пример был взят с GoogleDev. Студия ругается мол символ неизвестный, хотя библиотеку подключил, в чем проблема? p.s. Фрагментами никогда не занимался p.s.s. Часть кода, например код создания конт. меню и лога закомментирована, т.к. не нужна import android.app.Activity; import android.app.Fragment; import android.app.FragmentManager; import android.os.Bundle; http://www.cyberforum.ru/android-dev/thread1643737.html
Программирование Android Локализация приложения
Добрый вечер! Интересует следующий вопрос, в андроид локализация приложения происходит в автоматическом режиме в зависимости от установленного языка на устройстве, но можно ли программно управлять данным процессом? Например, указать строковые значения какого языка подгрузить, либо чтобы строковые значения из strings.xml брались согласно настроек устройства, а звуковое сопровождение (из папок...
Dx.bat выдает ошибку Программирование Android
При вызове: drStudio>call C:\Users\user\AppData\Local\Android\sdk\build-tools\23.0.1\dx.bat --dex --output=C:\AndrStudio\bin\classes.dex C:\AndrStudio\obj Выдается ошибка: UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.RuntimeException: Exception parsing classes
Программирование Android Разметка под Андроид http://www.cyberforum.ru/android-dev/thread1643262.html
Нужна помощь в верстке, пишите кто сможет помочь Дубль темы во Фрилансе, закрыто
Программирование Android Как сделать панель с кнопками внизу, которую можно проматывать Подскажите, как сделать такую панель? Внизу кнопки и они все не входят на экран, можно промотать вправо. Как такое сделать? подробнее

Показать сообщение отдельно
egorikftp
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 22

Как подогнать ряд кнопок в TableLayout под ширину экрана? - Программирование Android

21.01.2016, 03:13. Просмотров 250. Ответов 1
Метки (Все метки)

День добрый. Пишу игру простенькую Крестики-нолики.
Поле состоит квадрата 3x3 из Кнопок, которые генерируются в коде.

Размер кнопки устанавливается при создании.
Java
1
2
button.setWidth(100);
button.setHeight(100);
Но на разных телефонах кнопки естественно по разному (где-то маленькие кнопки, а где-то не влазят целиком в экран), т.к. метод setWidth задает все в пикселях.

Вопрос, как можно сделать, чтобы ряд кнопок влезал на всех экранах?


Вот код создания кнопок:

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
    //динамически добавляет строки и колонки в игровое поле
    private void buildGameField() {
        Square[][] field = game.getField();
        for (int i = 0, lenI = field.length; i < lenI; i++) {
            final int x=i;
            TableRow row = new TableRow(this);      //создание строки таблицы
            for (int j = 0, lenJ = field[i].length; j < lenJ; j++) {
                final int y = j;
                Button button = new Button(this);
                buttons[i][j] = button;
 
                // установка слушателя, реагирующего на клик по кнопке
                button.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Button button = (Button) v;
                        Game g = game;
                        Player player = g.getCurrentActivePLayer();
                        if (makeTurn(x, y)) {
                            button.setText(player.getName());
                        }
                        Player winner = g.checkWinner();
                        if (winner != null) {
                            gameOver(winner);
                        }
                        //если поле заполнено
                        if (g.isFieldFilled()) {
                            gameOver();
                        }
                    }
                });
 
                //добавление кнопки в таблицу
                row.addView(button, new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.MATCH_PARENT));
 
                button.setWidth(100);
                button.setHeight(100);
            }
            //добавление строки в таблицу
            layout.addView(row, new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.MATCH_PARENT));
        }
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru