Domanda

Ho creato un'app di mappa che utilizza un'immagine molto grande come mappa. Mostra piastrelle ad alta risoluzione quando l'utente si ingrandisce in una certa misura e una bitmap a risoluzione inferiore dell'intera immagine quando si è ingrandito oltre il 50%. Funziona bene, sul mio droide originale a volte posso vedere un leggero ritardo a causa delle nuove piastrelle che vengono attirate da e verso il collezionista della spazzatura.

Ora sto pensando a come gli Opengl sarebbero un modo migliore per rendere. Non l'ho mai toccato prima, ma da quello che ho letto in diversi turoial, sembra che potrei creare un quad che ha circa 8 facce e consentire l'abbattimento in modo che disegna solo le immagini che sono attualmente visibili sullo schermo.

Questo eliminerebbe completamente il ritardo? Nella mia app di test ora ho piastrelle caricate all'avvio dell'app, ma posso dire che il ritardo è dovuto a quelle piastrelle che vengono disegnate per la prima volta. Grazie.

È stato utile?

Soluzione

Ho scritto una vista mappa a base di OpenGL ed è dannatamente fantastico se lo dico io stesso. Purtroppo è per un progetto commerciale, quindi non posso offrire codice. Posso comunque dirti che ha 1 thread di rendering, un pool di thread di download di 8 piastrelle e (più pertinente alla tua domanda) 1 thread di archiviazione che carica e risparmia piastrelle al flash NAND o alla scheda SD. Il rendering viene eseguito una piastrella alla volta, ogni piastrella è 2 triangoli (non ci sono quad in ES). È ancora davvero veloce.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top