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

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

Войти
Регистрация
Восстановить пароль
 
vadim23409
 Аватар для vadim23409
6 / 6 / 0
Регистрация: 24.09.2012
Сообщений: 379
#1

Квадратный Layout - Android

02.12.2015, 03:00. Просмотров 245. Ответов 8
Метки нет (Все метки)

Как создать в XML разметке КВАДРАТНЫЙ layout, вычисление размеров можно задать алгоритмом:
ставим height и width == match_parent,
если height>width то height = width (layout квадратный и полностью влезает в родителя)
в противном случае width = height (будет то же, что и выше, зависит от соотношения сторон родителя).
Но как это всё реализовать в xml разметке layout?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Василевский
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 102
02.12.2015, 07:26     Квадратный Layout #2
Я не пробовал.
LinearLayout.setMinimumHeight();
Spelcrawler
522 / 492 / 110
Регистрация: 12.03.2014
Сообщений: 1,643
Завершенные тесты: 1
02.12.2015, 09:37     Квадратный Layout #3
Цитата Сообщение от vadim23409 Посмотреть сообщение
Но как это всё реализовать в xml разметке layout?
В разметке никак. Можно кастомный layout сделать в onMeasure() реализовать алгоритм, который вы описали.
vadim23409
 Аватар для vadim23409
6 / 6 / 0
Регистрация: 24.09.2012
Сообщений: 379
02.12.2015, 11:50  [ТС]     Квадратный Layout #4
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Можно кастомный layout сделать
Можно об этом больше информации?
Паблито
резкий
1958 / 1693 / 525
Регистрация: 12.05.2014
Сообщений: 6,038
Завершенные тесты: 1
02.12.2015, 11:56     Квадратный Layout #5
я уже писал, есть новые разметки, где можно указывать размеры в процентах, а так же указать сохранять пропорции
пример, остальное не так сложно нагуглить
http://www.androidauthority.com/usin...ibrary-630715/
Spelcrawler
522 / 492 / 110
Регистрация: 12.03.2014
Сообщений: 1,643
Завершенные тесты: 1
02.12.2015, 12:58     Квадратный Layout #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Паблито, что-то не понял как сделать квадрат этим способом. Процент от ширины и процент от высоты задать можно, но они ведь разные могут быть.
Цитата Сообщение от vadim23409 Посмотреть сообщение
Можно об этом больше информации?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class SquareLayout extends FrameLayout{
 
    public SquareLayout(Context context) {
        super(context);
    }
 
    public SquareLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
 
    public SquareLayout(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
 
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int width = MeasureSpec.getSize(widthMeasureSpec);
        int height = MeasureSpec.getSize(heightMeasureSpec);
        int size = width > height ? height : width;
        setMeasuredDimension(size, size);
    }
}
Паблито
02.12.2015, 13:12
  #7

Не по теме:

можно сделать, но автор уже отметил лучший ответ и раздал благодарности, его все устраивает

Spelcrawler
522 / 492 / 110
Регистрация: 12.03.2014
Сообщений: 1,643
Завершенные тесты: 1
02.12.2015, 13:13     Квадратный Layout #8
Паблито, меня не устраивает)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2015, 14:01     Квадратный Layout
Еще ссылки по теме:

Android Перерисовка layout
Android переходы layout
Layout Android
Layout со скроллингом Android
Android layout Android

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

Или воспользуйтесь поиском по форуму:
vadim23409
 Аватар для vadim23409
6 / 6 / 0
Регистрация: 24.09.2012
Сообщений: 379
02.12.2015, 14:01  [ТС]     Квадратный Layout #9
Цитата Сообщение от Паблито Посмотреть сообщение
его все устраивает
если засунуть кнопку в этот SquareLayout и приписать ей onClickListener, то приложение запускается с ошибкой

Добавлено через 11 минут
ой, не в этом дело, где бы кнопка не была, ошибка после setOnClickListener
Yandex
Объявления
02.12.2015, 14:01     Квадратный Layout
Ответ Создать тему
Опции темы

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