Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
valerik
2 / 2 / 0
Регистрация: 10.11.2014
Сообщений: 15
#1

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

10.11.2014, 16:27. Просмотров 912. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программное изменение размеров Button (Программирование Android):

Программное изменение размеров ImageView - Программирование Android
Для всех View задаю размер через .getLayoutParams().width = mywidth; Но для ImageView это почему-то не работает ( пробовал так же...

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

Программное создание обработчика события OnClick для button - Программирование Android
Иметься кнопка, которая создается самим пользователем Код создания кнопки: public void CreateButton() { LinearLayout...

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

Программное изменение регистра клавиатуры - Программирование Android
подскажите пожалуйста, есть ли возможность поменять регистр на клавиатуре, когда она вызывается на экран программно. (мне необходимо, чтобы...

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

5
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 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 / 6
Регистрация: 24.05.2013
Сообщений: 157
10.11.2014, 23:01 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от 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
Привет! Вот еще темы с ответами:

Программное изменение события button - C#
Нужно сделать так, что если checkBox нажат, то при нажатии кнопки прибавлялось не 6, а допустим 8 private void button1_Click(object...

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

Изменение размеров рисунка при изменении размеров области вывода (окна) - Delphi
Нужно сделать так, что бы рисунок менял свой размер при изменении окна... unit Unit1; interface uses Windows, Messages, SysUtils,...

Изменение размеров Image.Picture.LoadFromFile при изменении размеров окна - Delphi
Подскажите, пожалуйста, какие функции для этого нужны.


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

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

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