Комментарии 4
Когда vector drawable вошло в обиход стало приятно работать с графикой. Теперь меньше мусора. Ведь больше не надо генерить изображения под каждый dpi.
Но в небольших решениях под конкретную задачу и определенное устройство. В плане занимаемого пространства порой выгоднее использовать графическое изображение. Так как файл с вектором может весить в несколько раз больше. И порой отрисовываться дольше чем png. Даже в системе андроид есть ещё базовая графика которую не выгодно заменять на вектор
Здорово что вы выделили время для написания статьи и ее оформления, однако вынужден заметить что ваше понимание вопроса довольно поверхностно.
Ну, например -
Проще говоря, при работе с SVG мы не оперируем пикселями или другими фиксированными единицами, а используем условные числовые значения, а уже потом определяем размер документа.
это не совсем так.
Будет корректнее сказать, что в SVG есть canvas, на котором мы рисуем (располагаем элементы) - это условно бесконечная плоскость, в пределах которой мы и оперируем размерами и положением элементов. И уже для его отображения на странице у нас существует параметр viewBox
, в котором мы определяем координаты поля, которое будет отображаться, т.е. по сути это маска над плоскостью. А уже размеры самого svg элемента определяют размеры этой маски на странице. Т.е. по сути у нас есть изначальные истинные размеры (опустим морфинг для простоты) и 2 коэффициента, которые дают итоговый размер.
Вообще же SVG страдает тем же, что и XML- это очень простой по реализации формат, которым очень сложно пользоваться из-за его внутренней простоты и неочевидного синтаксиса. Они оба не очень human-frendly, но могут давать классные результаты на выходе если не пытаться использовать их за границами их применения (ну, например не рисовать в кривых фотореалистичный пейзаж гор, очевидно что растр будет дешевле).
Ну и для возможности полноценного использования SVG его стоит достать из-под плинтуса тега img и общаться с ним как с полноценным контейнером страницы, вот тогда он засияет всеми красками (например можно применить на него стили, повесить события и т.п.).
В общем не стоит его так бояться, он классный. Как и любимые регулярочки, которые не те кем кажутся, поэтому их никто не понимает и от этого грусно.
Интересно, как можно уже готовый svg анимировать. Например, сделать из лого loading.
Спасибо, за переведенный материал, но интереснее было бы про интерактивные возможности SVG, взаимодействие с документом и пользователем через JavaScript и события.
Полезные рецепты ручного создания SVG