Есть ли способ прочитать точки, созданные при рисовании пути? Мне кажется глупым, что путь не может быть доступен для чтения.
Или просто лучше вручную записать текущее положение пальца в массив?
спасибо
Есть ли способ прочитать точки, созданные при рисовании пути? Мне кажется глупым, что путь не может быть доступен для чтения.
Или просто лучше вручную записать текущее положение пальца в массив?
спасибо
Вы можете прочитать столько точек, сколько хотите, с любого пути. Пример того, как читать координаты из середины пути:
PathMeasure pm = new PathMeasure(myPath, false);
//coordinates will be here
float aCoordinates[] = {0f, 0f};
//get coordinates of the middle point
pm.getPosTan(pm.getLength() * 0.5f, aCoordinates, null);
Вы можете пройти любое расстояние от начала пути, чтобы получить координаты точки.
Насколько я знаю, я думаю, что вы не можете получить ранее добавленные баллы, но вы можете расширить класс Path и создать свои собственные, переопределить методы добавления, а затем сохранить эти точки в массиве или списке или что угодно предпочитают.
Вы упомянули позицию пальца в своем вопросе. Если вы рисуете и используете события движения, вы можете добавить позиции X и Y в ArrayList во время события, где все четные индексы X и коэффициенты Y. Я использовал это в нескольких приложениях для рисования, которые я создал. Чтобы воссоздать путь, вам нужен только цикл for и Path.lineTo().
Также, если вы нарисовали путь к представлению с определенным цветом, скажем Color.Black, вы можете использовать Bitmap.getPixels(...) и создать массив {x0, y0, x1, y1,....xn, yn} на основе цикла for, такого как
int i = 0;
for(int y = 0; y < bitmap.getHeight(); y++){
for(int x = 0; x < bitmap.getWidth(); x++){
if(pixels[y*bitmap.getWidth()+x] == Color.BLACK){
xy[i] = x;
i++;
xy[i] = y;
i++;
}
}
}
Массив xy имеет все ваши координаты.