Как задать размер у view, что-бы он был постоянно с одинаковым соотношением сторон?
Допустим нужно сделать 10 квадратов 50dp на 50dp с отступами от края экрана и между квадратами. Если делать это просто указывая 50dp на 50dp и положить в linearLayout, то если на экране не хватает места они будут непропорционально сжиматься т.е получится 50dp на 40dp, а мне нужно чтобы они полностью влезли в экран и сохранили форму квадрата т.е стали например 40dp на 40dp. Как так сделать? Может есть атрибут который отвечает за масштабирование?
Я вижу 2 варианта.
1) Сделать разметку под несколько размеров экранов.
2) В коде получить ширину экрана, высчитать максимальный возможный размер квадратов, пройтись по квадратам и заменить их LayoutParams
еще как вариант - получать метрики экрана и определять исходя из них метрики вьюх через парамсы. Еще вариант - использовать констрейнт (но вариант с констрейнтом, как и первый вариант, подойдет не всегда, ну, вернее, может будет проще назначать парамсы)