2016-06-05 9 views
0

Ich werde eine Anwendung entwickeln, die eine ListView zeigt, die jede Zeile ein separates Bild (wie persönliches Bild für Kontaktliste) haben. Es scheint, ich habe zwei Optionen:Android Performance: lade Bilder für listView

1- Speichern Sie alle Bilder in Asset Ordner und laden Bild using setImageDrawable() Befehl.

2- Speichern Sie alle Bilder in Drawable Ordner und laden Thema setImageResource (R.drawable.xxx)

Also meine Fragen unter Verwendung unterscheidet sie in der Leistung? Und wie kann ich listView Rendering beschleunigen, so dass Bilder in akzeptabler Geschwindigkeit angezeigt werden.

+0

Wenn Sie eine große Anzahl von Bildern zu laden haben, wäre es besser, die Bilder auf einem Server zu speichern und die Bilder vom Server laden und zwischenspeichern sie Bilder zu stoppen jedes Mal – user5894647

+0

@ user5894647 Dank Nachladen zur Kündigung. Ich denke, ich sollte Bibliotheken wie UnivrsalImageLoader für diesen Zweck verwenden. – VSB

+0

yup Sie können auch Picaso- oder Glide-Bibliotheken verwenden, auch weil sie mit eingebautem Image-Caching ausgestattet sind. – user5894647

Antwort

0

Es sollte nicht viel Leistung anders auf Bild aus Drawable oder Asset-Ordner zugreifen. Sie können die Antwort auch sehen ->Android: Accessing images from assets/drawable folders

Aber, wenn Sie ListView verwenden, erstellen Sie die Ansicht neu. Also, wo immer Sie das Bild speichern, werden alle Bilder nicht viel anders fühlen.

+0

Also, wie kann ich beim Laden von Bildern beschleunigen? – VSB

+0

Ändern Sie die Bildgröße etwas niedriger, oder verwenden Sie NDK zum Rendern. Ich denke, Sie wissen bereits, dass Java nicht für das Rendern von Bildern geeignet ist. –

0

Es gibt nicht so viele Unterschiede. Nur zum Codieren von Musteränderungen.

Vermögenswerte/

Bitmap-Dateien (.png, .9.png, JPG, GIF) oder XML-Dateien, die in den folgenden ziehbar Ressource kompiliert werden.

ziehbar/

beliebige Dateien in ihrer Rohform zu speichern. Um diese Ressourcen mit einem unbearbeiteten InputStream zu öffnen, rufen Sie Resources.openRawResource() mit der Ressourcen-ID auf, die R.raw.filename ist.

https://developer.android.com/guide/topics/resources/providing-resources.html#ResourceTypes