4 Stimmen

Gibt es eine Möglichkeit, ein Path-Objekt auf Android zu iterieren?

Angesichts einer android.graphics.Path Ich möchte in der Lage sein, die spezifischen Pfadbefehle abzurufen: quadTo(..), curveTo(...), lineTo(...), usw., aus denen sich der Pfad zusammensetzt.

Java bietet einen PathIterator, um dies für GeneralPath-Objekte zu erreichen, aber ich habe keine Entsprechung für Android gefunden. Übersehe ich etwas?

6voto

Gregory Punkte 4264

Ich habe die konkrete Umsetzung und es sieht nicht so aus, als könnten Sie die Informationen bekommen. Jeder Aufruf geht nur bis zum nativen Code, und der tatsächliche Pfad wird auf der nativen Seite gespeichert.

Ich habe auch versucht, die drawPath-Methode von Canvas zu betrachten, aber es fällt nur auf nativen Code als gut.

Ich bin nicht sicher, ob es in Ihrem Code möglich ist, aber Ihre beste Option sieht aus wie Unterklasse Path und überschreiben alle adXXX Methoden, um die Werte in einer Liste zu speichern.

1voto

hoford Punkte 3990

Alte Frage, aber ich wollte, dass es die Antwort gibt Sie können die Befehle nicht zurückholen, aber Sie können Punkte zurückbekommen. Schauen Sie sich android.graphics.PathMeasure API 1

  float[] tmpPos = new float[2];
  float[] tmpTan = new float[2];
  PathMeasure measure = new PathMeasure();
  measure.setPath(path, true);
  do {
   float dist = measure.getLength();
   for (float p = 0; p < dist; p += 1) {
     measure.getPosTan(p, tmpPos, tmpTan);
     float x = tmpPos[0], y = tmpPos[1];
     float nx = tmpTan[0], ny = tmpTan[1];
     // do your own stuff
    }
 } while (measure.nextContour());

PathMeasure hat auch getSegment Es kann verwendet werden, um das Segment zu extrahieren, aber ich habe das nie versucht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X