Почему мы (должны) использовать разные значки запуска (xhdpi, hdpi и т. д.)

Мне было интересно, почему мы используем разные значки запуска (размеры) в Android. В настоящее время вы «должны» изменить размер значка на:

LDPI - 36 x 36
MDPI - 48 x 48
HDPI - 72 x 72
XHDPI - 96 x 96

И положить их в нужную папку. Но действительно ли это имеет значение, если вы поместите только значок xhdpi в свое приложение для Android и просто оставите папки ldpi, mdpi и hdpi пустыми.

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

Итак, что помешает нам сделать только значок xhdpi. Это по-прежнему приведет к резкому значку приложения для каждого устройства (кроме xxhdpi, конечно).


person Mdlc    schedule 13.07.2013    source источник


Ответы (4)


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

Обратите внимание, что чем выше разрешение, тем мощнее оборудование. Чем ниже разрешение, тем менее мощное оборудование. Вы можете сделать легкое упражнение. Откройте изображение в Gimp с разрешением 3000x3000. Уменьшите его до 50%. Даже на высокопроизводительном рабочем столе это займет некоторое время. Недолго, но будет.

person Joel Bodega    schedule 13.07.2013
comment
эксперимент с gimp не имеет ничего общего с DPI. DPI — это просто число внутри метаданных изображения, которое никак не влияет на изображение или файл. это просто часть информации для принтера, как показать изображение. масштабирование изображения 3000x3000 с разрешением 1DPI аналогично масштабированию изображения 3000x3000 с разрешением 10 000DPI . я не понимаю, почему этот ответ был выбран как правильный, поскольку производительность для значков запуска (которые очень малы по сравнению с тем, что вы написали) совершенно незначительна. - person android developer; 14.07.2013
comment
Да, они маленькие. Но есть ли у смартфонов какое-либо аппаратное обеспечение, сравнимое с настольным компьютером, над которым вы работаете? Из того, что вы упомянули, качество и накладные расходы на масштабирование, последнее будет иметь значение для пользователя. Экраны маленькие, и большинство несовершенств масштабирования не заметят пользователя, поскольку он не является графическим дизайнером. С другой стороны, миллисекунды складываются. На каждом устройстве по разному. Если бы фактор времени масштабирования вообще не играл роли, у нас не было бы рекомендаций по размеру. - person Joel Bodega; 14.07.2013
comment
оба важны, но вы должны знать, где разместить баланс, так как чем больше файлов вы поместите, тем больше приложение. для значков лаунчера следует ставить изображения как по качеству, так и по производительности. если бы качество не имело для вас значения, а только производительность, вы могли бы иметь заставку (показывающую что-то вроде инициализации в первый раз), которая масштабирует все изображения при самом первом запуске и помещает их все во внутреннюю память приложения. . Итак, основная причина - качество. производительность здесь является бонусом, особенно для небольших файлов. - person android developer; 14.07.2013
comment
даже в документации об этом говорится: developer.android.com/guide/practices/screens_support.html Чтобы ваши растровые изображения выглядели наилучшим образом, вы должны включить альтернативные версии с разным разрешением для разной плотности экрана. - person android developer; 15.07.2013

Как описано здесь в документации, предоставленной Android, лучше использовать разные варианты drawables в основном из-за следующих причин.

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

Кроме того, создание одного значка для xhdpi и его использование для hdpi, mdpi и ldpi не приведет к созданию четких изображений. Он будет создавать рисунки, в которых пиксели перекрываются друг с другом, создавая ощущение более четкого изображения в hdpi, но может быть недоступно для просмотра ни на mdpi, ни, конечно, на экране ldpi. Уменьшение масштаба изображения ухудшает качество с точки зрения качества так же, как и увеличение масштаба.

Так что всегда лучше иметь разные значки запуска для разных экранов!

person Karan Rampal    schedule 21.07.2013

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

Следующие пять факторов определяют, какие активы подходят для вашего устройства.

  • Размер экрана
  • Плотность экрана
  • Ориентация
  • разрешение
  • Пиксель, не зависящий от плотности (dp)
person dharam    schedule 13.07.2013
comment
Конечно, но если мы смотрим только на иконку, и не растягиваем ее, то делаем наоборот, так что только на иконке это не должно быть проблемой. - person Mdlc; 13.07.2013
comment
@Mark029348 даже один отдельный ресурс не должен быть проблемой, но, поскольку он может быть накрахмаленным (на устройствах с высоким разрешением) или пиксельным (на устройстве с низким разрешением), поэтому, чтобы предотвратить эту ситуацию, мы обычно делаем неуверенные значки - person dharam; 13.07.2013

есть 2 основные причины, которые я могу придумать, и они одинаковы для любого изображения, а не только для значков запуска:

  1. #P2# #P3# <блочная цитата> #P4#
  2. масштабирование требует процессорного времени устройства. конечно, может это и не важно, но хоть что-то...

недостатком является то, что ваше приложение займет больше места.

Итак, я думаю, что для некоторых изображений вы должны создать все экраны плотности, а для некоторых вы можете использовать изображения xhdpi или xxhdpi (или даже hdpi) и не использовать другие.

Кстати, есть также значок запуска xxhdpi размером 144x144 (см. здесь )

person android developer    schedule 13.07.2013