あなたはこの単純なスニペットは(私はhereを見た)パスの半分の点の座標を返しますpath.For例上の任意の点の座標を取得するためにPathMeasure
を使用することができます。
PathMeasure pm = new PathMeasure(myPath, false);
//coordinates will be here
float aCoordinates[] = {0f, 0f};
//get point from the middle
pm.getPosTan(pm.getLength() * 0.5f, aCoordinates, null);
またはこのFlaotPoint
点の座標をカプセル化するクラスである、上記のスニペットにおいて
private FlaotPoint[] getPoints() {
FlaotPoint[] pointArray = new FlaotPoint[20];
PathMeasure pm = new PathMeasure(path0, false);
float length = pm.getLength();
float distance = 0f;
float speed = length/20;
int counter = 0;
float[] aCoordinates = new float[2];
while ((distance < length) && (counter < 20)) {
// get point from the path
pm.getPosTan(distance, aCoordinates, null);
pointArray[counter] = new FlaotPoint(aCoordinates[0],
aCoordinates[1]);
counter++;
distance = distance + speed;
}
return pointArray;
}
:スニペットはFlaotPoint
s.Thatアレイのアレイは、パス上の20点の座標を含む返し
class FlaotPoint {
float x, y;
public FlaotPoint(float x, float y) {
this.x = x;
this.y = y;
}
public float getX() {
return x;
}
public float getY() {
return y;
}
}
参考:
stackoverflow
Animating an image using Path and PathMeasure – Android
私は任意の代替がなかった場合の対処するために何が起こっていたかでした。私は数日間質問を開いたままにしておき、他の方法は示唆されていない場合、私はこれを答えとして受け入れます。 – StartingGroovy
@StartingGroovy最後に、このソリューションを選択した場合、パフォーマンスの向上を利用するために、更新された投稿を参照してください。 – Manos
興味深いことに、私は拡張ループが3倍速かったことに気づいていませんでした:)そのおかげでありがとう! – StartingGroovy