Я новичок в Android Studio и планирую разработать приложение для планшетов и телефонов. Поэтому мое приложение будет в основном использоваться на обычных и больших экранах.

  • Какой dpi лучше для моих векторных иконок?
  • Нужно ли делать разные версии для одного и того же значка в dpi для поддержки нескольких экранов?
  • Почему только создание значков wrap_content не поддерживает несколько размеров экрана. Я думал, что векторные изображения не становятся размытыми, когда они искажены.
0
gunesevitan 28 Май 2017 в 07:55

2 ответа

Лучший ответ

Векторные рисунки

Как следует из названия, векторные рисунки основаны на векторной графике, в отличие от растровой графики, векторная графика - это способ описания графических элементов с использованием геометрических фигур. Это похоже на файл SVG. В Android Vector Drawable создаются как файлы XML. Теперь нет необходимости создавать изображения разного размера для mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi и т. Д. Нам нужен только один векторный файл для нескольких Размер экрана устройства. Также для более старых версий Android, которые не поддерживают векторные рисунки, Vector Asset Studio может превратить ваши векторные рисунки в различные размеры растрового изображения для каждой плотности экрана во время выполнения.

Чем меньше, тем лучше

Для Android процесс растеризации, который преобразует VectorDrawable в растровое изображение, происходит на CPU. Таким образом, существует в основном линейная зависимость между временем обработки, необходимым для создания изображения, и разрешением / размерами самого изображения. Растрирование треугольника в текстуру 16x16 пикселей может потребовать вычисления цветовых фрагментов всего для 8–12 пикселей. Выполнение того же с текстурой 1024x1024 затронет более ста тысяч пикселей, что, очевидно, займет больше времени. Таким образом, по мере того, как размер текстуры, которую вы создаете, становится больше, наступает точка безубыточности, когда удар по времени загрузки становится значительным, и больше не имеет смысла использовать Vector Drawable.

1
Muhammad Younas 28 Май 2017 в 05:56

«Dpi» для векторных иконок не имеет смысла. Векторные иконки не зависят от DPI. Вот и весь смысл их. Неважно, в каком размере вы их создаете. Разница лишь в том, какой размер вы рисуете (визуализируете) их во время выполнения. Чем больше его размер, тем больше пикселей нужно рассчитать и нарисовать.

Вот что ответит второй абзац в @ muhammad-younas (из этого блога Colt McAnlis) пытается сказать.

2
Paul LeBeau 29 Май 2017 в 01:00