Frage

Ich habe eine Karten -App erstellt, die ein sehr großes Bild als Karte verwendet. Es zeigt hochauflösende Kacheln, wenn der Benutzer in gewissem Maße und eine Bitmap des gesamten Bildes mit niedrigerer Auflösungen beim Zoomen von über 50%zoomt. Es funktioniert in Ordnung, auf meinem origionalen Droiden kann ich manchmal eine sehr leichte Verzögerung sehen, da die neuen Fliesen in und vom Müllsammler gezogen werden.

Ich denke jetzt darüber nach, wie offen ein besserer Weg wäre, um zu rendern. Ich habe es noch nie zuvor berührt, aber aus dem, was ich in verschiedenen Turoials gelesen habe, könnte ich ein Quad erstellen, das ungefähr 8 Gesichter hat, und das Culling zu aktivieren, sodass es nur die Bilder zeichnet, die derzeit auf dem Bildschirm sichtbar sind.

Würde dies die Verzögerung vollständig beseitigen? In meiner Test -App wird jetzt Kacheln beim App -Start geladen, aber ich kann feststellen, dass die Verzögerung auf die ersten Kacheln zurückzuführen ist, die zum ersten Mal gezogen werden. Vielen Dank.

War es hilfreich?

Lösung

Ich habe eine OpenGL-basierte Kartenansicht geschrieben und es ist blutig großartig, wenn ich es selbst sage. Leider ist es für ein kommerzielles Projekt, also kann ich keinen Code anbieten. Ich kann Ihnen jedoch sagen, dass 1 Rendering -Thread, einen Pool mit 8 Fliesen -Download -Threads und (am wichtigsten für Ihre Frage) 1 Speicher -Thread, der Fliesen auf dem NAND -Blitz oder der SD -Karte lädt und speichert. Das Rendering erfolgt jeweils eine Fliese, wobei jede Fliese 2 Dreiecke beträgt (es gibt keine Quads). Es ist immer noch schnell.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top