Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Svetl9chok
0 / 0 / 0
Регистрация: 01.02.2018
Сообщений: 80
1

Изменение размеров кнопки

01.08.2019, 22:30. Просмотров 892. Ответов 4

Не могу найти нормального решение в инете, что как будто моя проблема нонсенс... У меня есть 4 кнопки, которые я расположил в xml файле
XML
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
elativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/content"
        tools:context=".activity.Playingfield"
        android:background="@color/blue_black">
 
    <Button
            android:id="@+id/red_block"
            style="@style/games_block_portation"
            android:background="@drawable/red_block"/>
    <Button
            android:id="@+id/green_block"
            style="@style/games_block_portation"
            android:background="@drawable/green_block"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"/>
    <Button
            android:id="@+id/yellow_block"
            style="@style/games_block_portation"
            android:background="@drawable/yellow_block"
            android:layout_alignParentBottom="true"/>
    <Button
            android:id="@+id/blue_block"
            style="@style/games_block_portation"
            android:background="@drawable/blue_block"
            android:layout_alignParentEnd="true"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"/>
 
</RelativeLayout>
Я решил что бы кнопки коректно выглядили дать им размеры в зависимости от дисплея
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_playingfield)
        val display = windowManager.defaultDisplay
        val height = display.height
        val width = display.width
        red_block.layoutParams = RelativeLayout.LayoutParams((width *0.4).toInt(),(height *0.4).toInt())
        green_block.layoutParams =  RelativeLayout.LayoutParams((width *0.4).toInt(),(height *0.4).toInt())
        yellow_block.layoutParams =  RelativeLayout.LayoutParams((width *0.4).toInt(),(height *0.4).toInt())
        blue_block.layoutParams =  RelativeLayout.LayoutParams((width *0.4).toInt(),(height *0.4).toInt())
        pause_play_block.layoutParams =  RelativeLayout.LayoutParams((width *0.2).toInt(),(height *0.2).toInt())
    }
}
Но при таком давании размера, они все сбиваются в левый верхний угол
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.08.2019, 22:30
Ответы с готовыми решениями:

TableLayout. Кнопки получаются разных размеров (кнопки-картинки)
Я решил делать приложение в TableLayout. Добавил TableRow, в него 3 кнопки. Но кнопки у меня...

Изменение размера текста кнопки вместе с размером самой кнопки?
Есть 100500 кнопок, нужно имитировать их нажатие. делаю это через селекторы и...

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

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

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

4
ExFau$t
901 / 716 / 211
Регистрация: 08.05.2012
Сообщений: 3,450
02.08.2019, 00:02 2
Лучший ответ Сообщение было отмечено Svetl9chok как решение

Решение

Размеры от ширины экрана задаются в разметке. При установке layoutParams все атрибуты вьюхи, заданные в разметке, типо android:layout_alignParentEnd - сбрасываются. Для программного изменения layoutParams там же нужно задавать rules.
0
Svetl9chok
0 / 0 / 0
Регистрация: 01.02.2018
Сообщений: 80
02.08.2019, 00:24  [ТС] 3
ExFau$t, Можете привести пример, что бы лучше понять, что мне делать??
0
ExFau$t
901 / 716 / 211
Регистрация: 08.05.2012
Сообщений: 3,450
02.08.2019, 00:26 4
https://startandroid.ru/ru/uroki/vse...elementov.html
0
Svetl9chok
0 / 0 / 0
Регистрация: 01.02.2018
Сообщений: 80
03.08.2019, 15:29  [ТС] 5
Лучшим решением оказалось использовать специальную библиотеку от гугл
https://habr.com/ru/post/308152/
0
03.08.2019, 15:29
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.08.2019, 15:29

Изменение цвета кнопки закрашивает ее целиком
Здравствуйте, у меня возникла такая проблема. Стандартные кнопки у меня получаются красивой...

Изменение даты в textView при нажатии на кнопки
Подскажите,как менять дату с помощью кнопок (предыдущая,следующая) или выбирать ее из календаря...

Изменение языка приложения через нажатие кнопки
Здравствуйте! Есть приложение, в нём есть кнопка &quot;Язык&quot;, и я хочу, чтобы по нажатии на кнопку...


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

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

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