Android - разрешение экрана и плотность экрана - PullRequest
4 голосов
/ 27 сентября 2010

Что касается управления ресурсами (изображениями) в> версии Android 1.6, нам необходимо сохранять изображения с различным разрешением, в частности в папках Drawable-Hdpi, Drawable-Mdpi, Drawable-Lpi.

А согласно этой странице: http://developer.android.com/guide/practices/screens_support.html,

В разделе Низкая плотность - используются три разрешения: 240 * 320, 240x400, 240x432 для малого экрана, обычный экран, особенно большой экран.

То же самое для секции средней плотности - используются три разрешения: 320x480, 480x800, 480x854 для маленького экрана, обычный экран, особенно большой экран.

и то же самое для высокой плотности ........

но я запутался здесь:

(1) Как я узнал, что используется маленький, нормальный или большой экран, я имею в виду, есть ли способ узнать?

(2) Как я узнаю, какой тип плотности я использую?

(3) И в папке Drawable-Hdpi, Drawable-Mdpi, Drawable-ldpi, какое разрешение изображения мы должны хранить особенно?

Пожалуйста, поделитесь своими знаниями.

Ответы [ 3 ]

7 голосов
/ 27 сентября 2010

Существуют определенные вызовы API Android, которые могут во время выполнения сказать вам, какую плотность и (маленький / большой / нормальный) размер экрана имеет трубка.Однако, как разработчику, нам не нужно беспокоиться об отдельных телефонах вообще.Все, что нам нужно сделать, это иметь активы ldpi / mdpi / hdpi и маленькие / нормальные / большие макеты в apk.Android внутренне обрабатывает все.

Не забудьте получить глубокое понимание того, как Android определяет, какие ресурсы использовать, и алиасы здесь .

3 голосов
/ 27 сентября 2010

Почему вы хотите знать фактическую плотность?Это бизнес для Android.Но я уверен, что есть способ получить эту информацию.

Для разработки я положил все в папку hdpi.Я также мог бы положить все в общую папку Drawable.

В момент публикации вы можете решить, хотите ли вы предоставить уже уменьшенные ресурсы для ldpi и mdpi.Однако это не обязательно.

Обновление: Получение фактической плотности с помощью этого класса и рекомендации

Обновление 2: Я нашел 25-минутное видео от Motorola, в котором обсуждаются все эти проблемы: Работа с несколькими экранами

1 голос
/ 13 октября 2011

1) Измените содержимое макета в разных папках, т.е. layout-small, layout-large и т. Д. Теперь протестируйте его в другом эмуляторе с другим разрешением экрана.

2) Для определения плотности устройства используйте
Log.d("Density", "" + (getResources().getDisplayMetrics().density));

...