Добрый день, возник вопрос: стоит ли каждые изображения закидывать в mipmap?
Допустим есть логотип, я его сделал из 5 форматов разных размеров и раскидал по папкам? Нужно ли это делать?
стоит ли каждые изображения закидывать в mipmap
Каждые – не стоит, но, например, иконку приложения следует размещать именно там.
В mipmap
следует хранить изображения, которые на устройстве, в зависимости от того, где они отображаются, будут иметь разные размеры. Формулировка, конечно, звучит не очень, но далее постараюсь разъяснить суть.
drawable
и mipmap
Разница между drawable
и mipmap
заключается в том, что изображения, находящиеся в каталоге drawable
для некоторых DPI могут быть исключены из приложения на этапе его сборки, а изображения из mipmap
– не могут.
mipmap
?Для корректного отображения изображений на дисплеях с различными DPI в Android были введены квалификаторы (например, mdpi, hdpi). Чтобы изображения корректно выглядели на всех устройствах, необходимо разместить эти изображения со всеми доступными квалификаторами (в соответствующих разрешениях).
Размещение изображений в различных разрешениях влечет за собой увеличение размера приложения.
Допустим, Вы знаете, что у Боба такое-то значение DPI, а у Алисы – некоторое другое. Чтобы уменьшить размер приложения, Вы можете отдельно собрать приложение для Боба и отдельно для Алисы, включая изображения только в необходимом разрешении. При сборке проекта Вы можете исключить ненужные изображения (с помощью соответствующей конфигурации Gradle), например:
exclude "ldpi", "xxhdpi", "xxxhdpi"
Вроде бы все хорошо: исключены ненужные изображения и размер приложения уменьшен. Однако не все так гладко. Некоторые изображения могут быть отображены в разрешениях, которые не соответствуют тому, в котором Вы оставили эти изображения в проекте. Пример – иконка приложения, в некоторых лаунчерах она может быть увеличена. Так как иконка приложения у Вас в единственном разрешении (как и все другие изображения), то она будет увеличена и произойдет т.н. пикселизация – изображение будут размыто (при большом апскейле будут заметны квадратики).
Вот тут-то и приходит на помощь mipmap
– изображения, размещенные там, не будут исключены. То есть если Вы укажите в Gradle:
exclude "ldpi", "xxhdpi", "xxxhdpi"
то соответствующие изображения из drawable
будут исключены, а из mipmap
– нет.
Конечно нужно. Каталоги mipmap предназначены для иконок приложения, все остальные изображения должны быть помещены drawable.
Иконки, как и другие изображения, создаются разных размеров для того, чтобы не терялось качество при масштабировании. Ланчеру в некоторых случаях нужны более крупные иконки, и отдельный каталог для иконок позволяет избежать дополнительного преобразования.
Подробнее здесь: https://android-developers.googleblog.com/2014/10/getting-your-apps-ready-for-nexus-6-and.html
Вообще о том, как устроены ресурсы, и как Андроид находит наиболее подходящий, есть здесь (доступно на русском): https://developer.android.com/guide/topics/resources/providing-resources.html#BestMatch
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, я нашел вариант реализации хэш-таблицы, но мне непонятна логика работы метода push:
Реализую передачу между устройствами при помощи socket'овПередача проходит между Windows ПК и Android девайсом
вот есть у меня imageview , если в методе onCreate я присваиваю imageViewsetImageBitmap(bitmap), то всё нормально отображается
Всем привет! Помогите разобраться! Как в eclipse в java-проект добавить файлclass? Если делаю через 'Add Class Folder