Frage

Für die Anwendung, an der ich gerade arbeite, habe ich so etwas erstellt ImageSwitcher für mehrere Bilder (stellen Sie sich iPhones vor). UIScrollView mit aktiviertem Paging).

Zuerst habe ich einige fest codiert ImageViews und ihre zeichnbaren Ressourcen auf Erstellung/Inflation geladen, aber nach einigen Optimierungen (und was ich für Verbesserungen hielt) habe ich die benötigten Ansichten auf 3 reduziert, davon 2 ImageViews Wird zum Anzeigen der aktuellen Seite und zum Animieren zwischen aktueller und neuer Seite verwendet.

Mit dieser Änderung begann ich zu verwenden setImageResource/setImageDrawable für das dynamische Laden des neuen Bildes in meinem 2 ImageViews bevor ich durch die Seiten blättere (ich verwende PNG-Dateien in der Größe für HVGA-Displays).

Zu meiner Enttäuschung verschlechterte sich die Leistung, so dass ich beim schnelleren Durchblättern eine gewisse Verzögerung spürte.Ein kurzer Blick hinein TraceView ergab, dass 17,4 % der Gesamtzeit bei der Nutzung der App verbraucht wurden, mehr als fünfmal mehr als bei der nächsten intensiven Methode BitmapFactory.nativeDecodeAsset, aufgerufen durch meine dynamische Einstellung der zeichnbaren Ressource.

Ich denke über Möglichkeiten nach, dies zu umgehen, und ich möchte es auf die bestmögliche Weise tun, daher sind alle Vorschläge willkommen.

War es hilfreich?

Lösung

In welchem ​​Format haben Sie die Bilder?

Android arbeitet nativ mit RGB565-Bildern. Wenn Sie Ihre Bilder also in dieses Format konvertieren können, erfolgt die Dekodierung viel schneller.

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