Android: зачем создавать конкретные изображения для ldpi, mdpi и hdpi?

В настоящее время я пытаюсь поддерживать более широкий набор устройств с моим Android-приложением. Однако даже после прочтения того, что должно сказать Android Dev Guide, я не уверен, почему я должен предоставлять разные графики для ldpi, mdpi и hdpi.

Я понимаю, что изображения будут автоматически масштабироваться, поэтому я могу просто предоставить графику hdpi и позволить устройству делать все остальное. Будет ли качество масштабирования ниже, если устройство это сделает? Будет ли это проблемой производительности? Сейчас я больше беспокоюсь о том, чтобы умножить размер APK на три.

Ответы

Ответ 1

Я могу думать о двух причинах:

  • Забота разработчиков: включение всех версий иконок в ваш пакет занимает пространство и пропускную способность, а масштабирование их на лету потребляет процессор. Нет приза за то, чтобы угадать, какой из них дешевле на мобильном устройстве. (Я подозреваю, что эти приложения на рынке Android будут загружать только нужные ресурсы - в этом случае ваши пользователи даже не платят налог на космос/пропускную способность) Необходим справочник.
  • Конкуренция дизайнера: когда вы уменьшаете значок вручную, вы можете (и преданный дизайнер настаивает) перепроектировать значок, чтобы получить более четкие результаты, чем автоматическое масштабирование. Посмотрите эту страницу для подробного объяснения того, почему значки масштабирования вручную хороши. (Он говорит главным образом о значках iPhone, но это относится и к значкам Android.)

Ответ 2

Я бы предположил, что нужно принимать взвешенное решение между производительностью и размером. Если вы предоставляете только hdpi-графику, ОС, естественно, придется использовать некоторые ресурсы при уменьшении масштаба для устройств с более низким разрешением. Но если вы предоставили графику hdpi, mdpi и ldpi, для этого потребуется немного больше места.

Однако ваш страх за умножение размера APK на три не слишком важен, на мой взгляд. Прежде всего, если вы каким-либо образом обеспечите графику hdpi, добавив графику mdpi и ldpi (размер которой меньше размера графического изображения hdpi (примерно 3: Коэффициент масштабирования 4: 6)) увеличит размер, но далек от тройного (более близкого к двойному). Во-вторых, графика не составляет весь размер APK, поэтому утроение количества изображений не будет также утроить размер APK. И, наконец: поскольку Android теперь поддерживает приложения для SD, размер вашего приложения не так важен, как в предыдущих версиях.

Ответ 3

Будет ли качество масштабирования ниже, если устройство делает это?

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

Ответ 4

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

Вы можете позволить ОС масштабировать изображение, но оно, вероятно, будет выглядеть размытым.