Есть приложение в котором используется карта Google Maps в качестве фрагмента, в приложении так же располагается пользовательский интерфейс, кнопки и текстовые метки,а так же рекламный баннер снизу. Со стороны гугло карт в свою очередь присутствует интерфейс в виде кнопок масштабирования компаса, кнопки возврата к местоположению и сама надпись Google. Интерфейс моего приложения распологается в верхних углах и снизу, соответственно что бы не перекрывать интерфейс гугло карт и их надпись я использую:
mMap.setPadding(0, 100, 0, 300); // start, top, end, bottom
Для создания отступа для интерфейса гугл, что бы кнопки и надпись google не перекрывались моими. Но проблема в том что на разных разрешениях экрана этот отступ фиксируется в пикселях. В моем случае отступ снизу в 300 пикселей на разрешении 1080*1920 располагается как надо, а вот на устройстве с маленьким разрешением, этот отступ становится большим и надпись google поднимается аж на середину, а при повороте экрана кнопки масштабирования и возврата к местоположению начинают наезжать друг на друга. Помогите решить этупроблему.
Не знаю, будет ли считаться такое решение деликатным, но сделал так: сначала определяем высоту в пикселях
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int screenHeight = displaymetrics.heightPixels;
Дальше зная наиболее распространенные разрешения экранов делаем такую конструкцию
if(screenHeight==1920) {
mMap.setPadding(0, 100, 0, 150);
} else if(screenHeight==1280) {
mMap.setPadding(0, 80, 0, 100);
} else if //.....и так далее
По крайней мере все работает)))
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники