2013-10-29 9 views
10

Ich habe ein Problem mit Android Canvas beim Zeichnen des Pfads. Mein Fall ist, dass ich ein relatives Layout arbeite wie eine Kartenansicht (nicht mit Google API oder so ähnlich). Ich muss einen Pfad auf diese Ansicht zeichnen.Android Canvas hat den Pfad nicht gezeichnet, wenn der Pfad außerhalb des Sichtbereichs steht

Ich muss auch andere Art wie Kreis, Polygon mit Leinwand auch zeichnen. Jedes Mal, wenn wir die Ansicht vergrößern oder verkleinern, berechnen wir den Pfad erneut, um ihn an die Zoomstufe anzupassen. Wenn alte API wie Android 2.3.3 verwendet wird, gibt es überhaupt kein Problem. Aber für neuere API wie Android 4.x, wenn wir hineinzoomen, gibt es Punkte, die eine Position außerhalb der sichtbaren Ansicht haben (wie zB -300, -300). Nach einer Weile hineinzoomen, zeigt der sichtbare Bereich nur einen kleinen Teil meines Weges an. Und dann verschwindet plötzlich der ganze Weg. Wenn wir herauszoomen, erscheint es wieder. Es wie Canvas Stop Rendering diese (anderes Objekt immer noch wie Symbol angezeigt) Das gleiche gilt für Kreis, Oval oder Polygon.

Also bin ich mir nicht sicher, ob es irgendeine Veränderung in der Art und Weise, wie Canvas Draw Sache? Gibt es etwas, was ich vermisse, wenn ich mit Canvas zeichne?

Antwort

14

Fügen Sie diese Zeile in der Initialisierung der Ansicht

setLayerType(View.LAYER_TYPE_SOFTWARE, null); 

auch dieses Handbuch für Hardware-Ebene siehe unterstützte API

google API

Img A

Img B

+2

Danke so viel! Das ist genau die Ursache meines Problems. Ich habe ein paar Zeilen Code hinzugefügt, um vor dem Aufruf dieser Methode nach der API-Version zu suchen. Und jetzt funktioniert alles wieder gut. – mameo

+1

Sie haben mich gerade davon abgehalten, meinen Kopf durch eine Wand zu schlagen ... – Guardanis

Verwandte Themen