Ich frage mich, ob es eine Möglichkeit gibt, gefüllte Bereiche (wie ein gefülltes Polygon) mit dem Android Canvas ohne die Path
Klasse zu zeichnen und canvas.drawPath(...)
anrufen.Gibt es eine Möglichkeit, einen gefüllten Bereich mit Canvas zu zeichnen, ohne Path zu verwenden?
Der Grund, warum ich dies ohne Path
tun möchte, ist, weil ich sehr große Datensätze zeichnen muss und canvas.drawPath(...)
ist nicht hardwarebeschleunigt und daher langsam.
Die Leistung bei der Verwendung von canvas.drawLines(...)
ist viel besser wegen der Hardwarebeschleunigung, aber ich habe keine Möglichkeit gefunden, das mit diesem Ansatz gefüllte Polygon zu zeichnen (auch wenn die Linien alle verbunden sind).
Selbst beim Aufruf wurde das Polygon nicht gefüllt, wenn drawLines(...)
verwendet wurde.
Gibt es eine Möglichkeit, ein gefülltes Polygon zu zeichnen, ohne den Path
Ansatz zu verwenden?
Oder gibt es einen anderen Weg, um die Leistung mit der Canvas
zu verbessern?
Ist Ihre 'Ansicht' interaktiv (haben Sie Änderungen an Ihrem Datensatz im laufenden Betrieb, die gerendert werden müssen)? Einfach einmal den Datensatz auf die Leinwand zu ziehen ist langsam? –
Meine Ansicht ist interaktiv und daher ständig aktualisiert, ich verwende bereits einen Puffermechanismus, der die Leistung erheblich verbessert. Ich bin jedoch noch nicht zufrieden. –
Meine letzte Frage, um eine Antwort zu erarbeiten. Wenn eine Änderung an Ihrem Datensatz auftritt, zeichnen Sie den gesamten Datensatz erneut oder nur die betroffenen im Bereich der Änderung? Ich meine, benutzt du schon 'view.invalidate (Rect dirty)'? Dies ist nur ein Tipp, um die Leistung zu verbessern. –