Страницы

Поиск по вопросам

воскресенье, 1 декабря 2019 г.

Одинаковый размер иконок внутри приложения

#android #android_layout


Есть main_layout, на котором есть 6 иконок (ImageButton). Хотелось бы, чтобы все
6 иконок были пропорциональны любому экрану, чтобы не вылезали за пределы экрана и
не были слишком большими/маленькими.

Я  задавал уже подобный вопрос ранее.  Пробовал решение, предложенное тут .

В частности, создал несколько каталогов values-mdpi, values-ldpi, values-xhdpi.

В каждом вложенном файле dimens указал разные размеры для иконок.
Как итог: на телефонах mdpi с разным разрешением экрана иконки были разного размера:
на телефонах с большим разрешением - маленькие, на телефонах с маленьким разрешением
- более-менее нормальные. 

Сейчас попробовал создал каталоги values-w320dp, values-w480dp.
И даже values-sw320, values-sw480dp. Везде в файле dimens указал разные значения. 

Как итог: на эмуляторе Genymotion телефон 240x320 160 dpi показывал тот же размер
иконок, что и на физическом телефоне 1920x1080 hdpi.

Посему опять задаю вопрос:


Как сделать так, чтобы иконки выглядели нормально на каждом экране? Именно заданного
размера.
Какие файлы нужно редактировать? Слышал, что вариант с values-ldpi и подобный перечень
давно устарел. Какой тогда формат нужно использовать.
Прошу помочь, так как уже перечитал Android guide не раз и все равно не понял. 


Разметка main_layout:

    

        

            

                


Ответы

Ответ 1



Я предложил бы использовать android:width = 0dp и android.weight = 1 для каждого элемента в горизонтальном LinearLayout. Тогда ширина элементов будет пропорционально растягиваться, и при этом занимать всю ширину LinearLayout. Для самих изображений можно воспользоваться Scale Drawable и задать для него нужный тип масштабирования. И уже этот ресурс указывать в качестве android:background или android:src. Тут есть пример.

Комментариев нет:

Отправить комментарий