Я давно знаю, но это было то, о чем я тоже все еще не понимал. Эта целая область API, кажется, больше сосредоточена на том, чтобы делать что-то для нас, чем на том, чтобы позволить нам понять, что на самом деле происходит, без сомнения, потому что он делает действительно умные вещи за кулисами.
Установка точек и их возврат совершенно разные.
Существуют различные способы установить конкретную точку, превосходный ответ Entreco показывает один из способов.
Чтобы вернуть точку, вы должны получить значения матрицы, связанной с этой точкой, а затем выбрать из нее правильные части. Это также отличный ответ ( Android Matrix, что возвращает getValues ()? ), очень четко объясняет, что происходит с матрицей, и из этого видно, что требуемые значения x, y являются элементами индексируется 2 и 5.
Ниже приведен (слегка псевдо) код, который я использую для их получения.
float [] theArray = { <nine float zeroes> }
Matrix m = new Matrix();
boolean success = myPathMeasure.getMatrix(m, theArray, Matrix.MTRANS_X+Matrix.MTRANS_Y);
m.getValues(theArray);
x = theArray[2];
y = theArray[5];
Я не очень доволен этим, но, похоже, нет более формального способа сделать это.