Изображения в случае поддержки с несколькими экранами в Android

StackOverflow https://stackoverflow.com/questions/4327183

  •  29-09-2019
  •  | 
  •  

Вопрос

У меня есть путаница в отношении поддержки с несколькими экранами в Android. Я прошел статью для поддержки с несколькими экранами на форуме Android Developer. Мой вопрос: если в приложении есть 15-20 изображений, которые необходимо отобразить полный экран на экране устройства. Теперь, если я хочу поддерживать все экраны, что мне следует поместить в три папки, которые LDPI, MDPI и HDPI. Вот что я сделал

В LDPI - изображения 240x320 Resolution MDPI - изображения 320x480 RELONTION HDPI - изображения разрешения 720x800. (Я использую одинаковую плотность для всех трех разрешений) Я думаю, что это не правильный подход.

Что именно я должен сделать? Поместите изображения различного разрешения в Drawable-LDPI, Draitable-MDPI и Drawable-HDPI, как выше, или я должен использовать изображения различных плотностей 120 DPI, 160 DPI и 240 DPI. Если я использую изображения разных плотностей, что должно быть их разрешением (должно быть разрешение 120 DPI 240x320, разрешение 160 DPI 320x480 и 240 DPI. Или, если я использую разные изображения DPI, их разрешение должно быть одинаковым (320x480) для всех плотностей.

С уважением, Ануж

Это было полезно?

Решение

В идеале у вас должны быть притяжения с различной плотностью для разных экранов. Вы можете использовать размеры, которые вы упомянули для своих изображений. Но вы также можете предоставить только изображения с высоким содержанием DPI, и они будут понижены, чтобы соответствовать плотности устройства пользователя.

Кроме того, если вы хотите, чтобы изображения были показаны в полноэкранном режиме, вам, возможно, нужно иметь разные версии этих изображений для ландшафтных и портретных ориентаций, а также для длинных и не длинных экранов.

И, наконец, вы можете использовать ImageView Виджет для правильного масштабирования изображений на разных устройствах.

Другие советы

Anujprashar, нет простого ответа на ваш вопрос. Различные спецификации плотности (HDPI, MDPI, LDPI) просто относятся к среднему диапазону плотностей (т.е. HDPI составляет около 240 ppi). Однако HDPI может относиться к большому количеству различных разрешений (например, Droid Motorola - это HDPI, разрешение 480x854; Nexus One - HDPI, разрешение 480x800). Таким образом, изображение фиксированного размера, которое вы можете использовать, чтобы идеально подходить для всех устройств.

Мое предложение заключается в том, что, если это вообще возможно, избегайте использования макета, которая требует от изображений точного размера экрана, либо вместо этого предоставляя изображение, больше, чем большинство разрешений для этой целевой плотности (например, 500x900), оставляя дополнительную прибыль. может быть обрезан (подумайте об этом как о кровотечении, если вы знакомы с этой концепцией для печати).

Или проще, если вы не требуете, чтобы они были отображены 1: 1 в исходном разрешении пикселей, вы можете просто установить шкалетип изображения на centerCrop, и его ширина и высота fill_parent. Анкет Это расширит (или конденсируется) изображение, чтобы соответствовать контейнеру, отключая пиксели, если соотношение сторон не является правильным.

Более сложный (и гораздо менее эффективный) метод будет иметь различное изображение для каждого разрешения экрана и метод в вашем oncreate () для извлечения размеров экрана и установить изображение в соответствии со значениями, которые вы возвращаете.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top