как создать android: pathData?

поэтому мне нужно будет использовать данные пути в моем приложении, есть ли способ конвертировать изображения, которые у вас уже есть, в данные пути ?

или единственный способ - вычислить все пиксели самостоятельно с помощью Photoshop и т. д.. ?

2 ответов


предполагая, что вы ссылаетесь на элемент pathData VectorDrawable, если у вас есть изображения в .svg формат вы можете легко конвертировать их.

либо сделайте это прямо в Android Studio, щелкнув правой кнопкой мыши на папке drawable, затем New>Vector Asset и импортируйте локальный файл SVG:

enter image description here

или используйте другой конвертер, например svg2android(вы можете обнаружить, что это работает на файлах, которые Android Studio не удается конвертировать.)

Если вы не хотите VectorDrawable и просто хотите получить pathData, вы можете открыть SVG в текстовом редакторе. Если изображения у вас есть не в векторном формате уже вещи будут сложнее.


PathData в векторных изображениях android-это скрипт векторной графики. Это не совсем чистый и читаемый человеком код в качестве высокого приоритета. Краткая идея о том, как pathdata строится, приведена ниже:

В Скрипт:

M или M (X,Y) стенд для MoveTo: переместить курсор в положение, верхний регистр M абсолютный, нижний регистр M относительный за командами moveto следуют координаты X,Y.

L или l (X,Y) означает LineTo: рисует линию от текущей позиции до позиции, указанной X, Y. верхний регистр означает абсолютные координаты, нижний регистр означает относительные координаты.

H или h (X) означает HorizontalLineTo: рисует горизонтальную линию от текущей позиции курсора до позиции, указанной X. Если после команды есть несколько координат X, это рассматривается как полилиния. Координата Y остается неизменной.

V или v (Y) означает VerticalLineTo: Рисует вертикальную линию от текущей позиции курсора до позиции, указанной Y. Если после команды есть несколько координат Y, это рассматривается как полилиния. Координата X остается неизменной.

Z или Z ClosePath: рисует линию от текущего положения курсора к начальной точке пути. Не имеет никаких параметров.

C (абсолютный) c (относительный) для Кривой to: рисует кубическую кривую Безье от текущей точки до (x, y) использование (x1,y1) в качестве контрольной точки в начале кривой и (x2, y2) в качестве контрольной точки в конце кривой. C (верхний регистр) указывает, что будут следовать абсолютные координаты; c (нижний регистр) указывает, что будут следовать относительные координаты. Несколько наборов координат может быть задано нарисовать сложной кривой. В конце команды Новая текущая точка становится конечной (x,y) координатной парой, используемой в полибезье. изображение того, как использовать C

S (абсолютный) s (относительный) для сокращенной/гладкой кривой to: рисует кубическую кривую Безье от текущей точки до (x,y). Предполагается, что первая контрольная точка является отражением второй контрольной точки На предыдущей команде относительно текущей точки. (Если нет предыдущей команды или если предыдущая команда не была C, c, S или s, предположим, что первая контрольная точка совпадает с текущей точкой.) (x2,y2) - вторая контрольная точка (т. е. контрольная точка в конце кривой). С (верхний регистр) указывает, что будут следовать абсолютные координаты; s (нижний регистр) указывает, что будут следовать относительные координаты. Несколько наборов координат может быть задано нарисовать сложной кривой. В конце команды Новая текущая точка становится конечной (x,y) координатной парой, используемой в полибезье.

для более базовой идеи обратитесь к этой ссылке https://medium.com/@ali.muzaffar/understanding-vectordrawable-pathdata-commands-in-android-d56a6054610e#.g4gbz1r5p

вот хорошая ссылка тоже. ссылке