Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
valerik
2 / 2 / 0
Регистрация: 10.11.2014
Сообщений: 15
#1

Программное изменение размеров Button

10.11.2014, 16:27. Просмотров 1022. Ответов 5
Метки нет (Все метки)

Добрый день!
Начал изучать программирование на андроид. Решил написать простенькую игру.

Нужно программным способом разместить на экране кнопки определённого размера, что бы в ширину экрана влезло 9 кнопок. У меня получается следующая картина (см. скриншот):

кнопки ставятся произвольного размера и этот размер я не могу поменять из программы.

Вот код
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
    private TableLayout mTL;
    private TableRow mTR;
    private Button mB;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.game_screen);
        mTL = (TableLayout) findViewById(R.id.container);
        addNumbers();
    }
 
    protected void addNumbers() {
      
        for (int y = 0; y <= 2; y++) {
            mTR = new TableRow(this);
            mTL.addView(mTR, y);
 
            for (int x = 0; x <= 8; x++) {
                mB = new Button(this);
                mTR.addView(mB, x);
                mB.setText(String.valueOf(x) + ":" + String.valueOf(y));
                mB.setId(x + ':' + y);
                mB.setMaxWidth(20);  //Вот эта строка эффекта не даёт ни какого
            }
        }
    }
Вопрос: как задать необходимую ширину кнопки в процентах от ширины экрана?
0
Миниатюры
Программное изменение размеров Button  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2014, 16:27
Ответы с готовыми решениями:

Программное изменение размеров ImageView
Для всех View задаю размер через .getLayoutParams().width = mywidth; Но для...

Программное изменение цвета текста button
Доброго времени суток всем! Возникла проблема: Необходимо, чтобы при нажатии...

Программное создание обработчика события OnClick для button
Иметься кнопка, которая создается самим пользователем Код создания кнопки:...

Программное изменение регистра клавиатуры
подскажите пожалуйста, есть ли возможность поменять регистр на клавиатуре,...

Программное изменение src в ImageView
Здравствуйте. Есть строка с названием рессурса (logo.png). Подскажите, как...

5
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
10.11.2014, 16:29 #2
valerik, да запихните их в linearLayout и поставьте всем вес 1.
0
valerik
2 / 2 / 0
Регистрация: 10.11.2014
Сообщений: 15
10.11.2014, 16:32  [ТС] #3
YuraAAA, Мне нужно сделать таблицей, что бы в каждой строке было по 9 кнопок, а строк будет много и они будут динамически добавляться
0
Sony17
28 / 28 / 10
Регистрация: 24.05.2013
Сообщений: 157
10.11.2014, 23:01 #4
Лучший ответ Сообщение было отмечено valerik как решение

Решение

Цитата Сообщение от valerik Посмотреть сообщение
в каждой строке было по 9 кнопок, а строк будет много и они будут динамически добавляться
Ну вот эти 9 кнопок и добавить на LinearLayout и каждой кнопке ставить одинаковый вес. И каждая новая строка с кнопками будет новой LinearLayout.
Вот только 9 кнопок в одном ряду, с текстом типа n:n, в портретной ориентации будут очень маленькими и неудобными.
1
valerik
2 / 2 / 0
Регистрация: 10.11.2014
Сообщений: 15
11.11.2014, 16:36  [ТС] #5
Sony17, всё допёр теперь! Просто не знал, что layout вкладывать друг в друга можно. Вопрос разрешился!
0
valerik
2 / 2 / 0
Регистрация: 10.11.2014
Сообщений: 15
24.11.2014, 20:12  [ТС] #6
Запилил свою первую игру на андроид! Зацените
https://play.google.com/store/apps/d....myapplication
Собственно её и писал, когда создавал эту тему
0
24.11.2014, 20:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2014, 20:12

Как в Android положить один объект (button) на другой (button)?
Скажите, как можно положить один объект на другой, так что бы они оба были...

Программное изменение события button
Нужно сделать так, что если checkBox нажат, то при нажатии кнопки прибавлялось...

Изменение размеров элементов, при изменение размеров формы
Доброго времени суток, подскажите, как в VS2016 реализовать подобное, а именно:...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru