Каково влияние viewportwidth/height на графические элементы Android

У меня есть нарисованный вектор, который я импортировал из SVG-ресурса. Иногда мне приходится корректировать размер. Обычно я обновляю ширину и высоту. Что я не могу понять, так это то, как ширина и высота области просмотра также влияют на SVG. Кажется, что изменение этих размеров может вывести svg из поля зрения в видимой области.

Что представляют собой эти единицы измерения? Как это соотносится с шириной и высотой соответственно? документация от Google (как обычно) крайне неадекватна. Может кто-нибудь уточнить, пожалуйста?

Ответ 1

viewportWidth и viewPortHeight определяют область документа, содержание VectorDrawable втягивается внутрь. Они эквивалентны полям ширины и высоты SVG viewBox. Изучите, как работает SVG viewBox, если вам нужны дополнительные объяснения.

Итак, представьте, что ваша фигура - это прямоугольник шириной 100 и 100. viewPortHeight правило, у вашего viewportWidth и viewPortHeight должно быть установлено значение 100. Таким образом, Android знает размеры базовых фигур.

Атрибуты width и height указывают Android, каков должен быть размер рендеринга по умолчанию ("внутренний") VectorDrawable. Вы можете думать о них, как о ширине и высоте PNG или GIF (или SVG, если на то пошло).

Таким образом, содержимое вашего VectorDrawable может быть определено в области 100x100. Но если ваша ширина и высота 24x24, содержимое будет уменьшено с 100x100 до 24x24.

Так что, почему возиться с viewportWidth и viewPortHeight беспорядочно с VectorDrawable. Например, если вы измените их на 50x50, вы получите один угол формы, уменьшенный до 24x24, вместо всей фигуры.

Ответ 2

Viewportwidth/Viewportheight - это размеры холста для путей SVG, а ширина/высота - это фактические внутренние размеры всего объекта.