Есть ли недостаток в использовании только изображений с высоким разрешением для приложений Android?

В документации на Android говорится, что лучшие практики заключаются в создании двух доступных каталогов: один для HDPI и один для MDPI. В нем также говорится, что если каталог MDPI не существует и устройство MDPI запускает приложение, оно уменьшит масштаб HDPI, поэтому все будет выглядеть хорошо.

Есть ли причина не просто сделать один набор графических изображений высокого разрешения?

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

В принципе, ситуация с этим может быть экстраполирована для большинства лучших практик:

Вы можете сделать это иначе, но чаще всего это не так.

Дело не в том, что вы не можете идти только с drawable-hdpi , но добавление drawable-ldpi и drawable-ldpi drawable-mdpi предлагает вам возможность настраивать и точно настраивать ваши активы по цене, увеличивающей немного вашего приложения.

Пожалуйста, имейте в виду, что это нагнетание не будет настолько драматичным – если вы предположите, что:

  • Размер ресурса пропорционален количеству пикселей
  • Различия между активами для разных резолюций пропорциональны разнице между разрешениями

Папка drawable-mdpi будет всего 37% от drawable-hdpi а drawable-ldpi будет всего 18% от drawable-hdpi

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

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

Единственный большой недостаток использования hdpi (для 90% из нас, кто не работает в больших командах с дизайнером, который может просто беспокоиться о папке / res в проекте), увеличил использование процессора и (что более важно) использование памяти. Т.е. – у вас есть устройство 320×480, которое загружает и использует 1000×1000 изображений (они уменьшаются на экране, но они используют ту же память, как если бы они отображались в полном размере).

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

https://code.google.com/p/android-drawable-converter/

Еще лучше – он настраивается, поэтому вы можете добавить новый размер (xxhdpi) или просто сгенерировать определенные типы (mdpi).