Android - разрешение экрана и плотность экрана
-
25-09-2019 - |
Вопрос
Согласно управлению ресурсами (изображениями) в> версии Android 1.6, нам нужно поддерживать изображение разных резолюций в Drawable-HDPI, для Drawable-MDPI, в папке Drawnable-LPI.
А согласно этой странице: http://developer.android.com/guide/practices/sreens_support.html. ,
В разделе низкой плотности - используются три резолюция: 240 * 320, 240x400, 240x432 для небольшого экрана, нормальный экран, большой экран.
То же самое относится к сечению средней плотности - используются три резолюция: 320x480, 480x800, 480x854 для небольшого экрана, нормальный экран, большой экран.
И тот же путь для высокой плотности ........
Но я здесь растерян:
(1) Как узнать, что используется ли маленький, нормальный или большой экран, я имею в виду, есть ли способ знать?
(2) Как мне узнать, какой тип плотности я использую?
(3) И в Drawable-HDPI, Drawable-MDPI, Drawable-LDPI, изображение, которое мы должны поддерживать особо?
Пожалуйста, поделитесь своими знаниями.
Решение
Существуют специальные вызовы Android API, которые могут, во время выполнения, сообщите вам, какую плотность и (маленький / большой / нормальный) размер экрана имеет трубку. Однако, как разработчик, нам не нужно беспокоиться об индивидуальных телефонах вообще. Все, что нам нужно сделать, это иметь активы LDPI / MDPI / HDPI и небольшие / обычные / большие макеты в APK. Android внутренне обрабатывает все.
Не забудьте получить самостоятельное понимание того, как Android определяет, какие активы использовать и псевдоним здесь.
Другие советы
Почему вы хотите знать фактическую плотность? Это бизнес Android. Но я уверен, что есть способ получить эту информацию.
Для развития я положил все в папку HDPI. Я также мог поставить все в общую чертежную папку.
В то время вы опубликуете, что вы можете решить, хотите ли вы предоставить уже складные ресурсы для LDPI и MDPI. Однако это не нужно.
Обновлять: Получить фактическую плотность с этим классом а также лучшие практики
Обновление 2: Я нашел 25 минут видео от Motorola, обсуждая все эти проблемы: Работа с несколькими экранами
1) Измените содержание макета в разных папках, т.е. малый макет, макет - большие и т. Д. Теперь проверим его в разном эмуляторе с разным разрешением экрана.
2) Для выяснения плотности использования устройства
Log.d("Density", "" + (getResources().getDisplayMetrics().density));