Spinner oder Fortschrittsbalken an, während die Bilder geladen werden, werden nicht blockiert, UI
Ich habe eine asynchrone Aufgabe, das laden der Bilder.
Wie könnte ich ein spinner, nur innerhalb der Galerie, wo die Bilder geladen werden, um Sie anzuzeigen, einige arbeiten durchgeführt werden? Oder Fortschrittsbalken?
Aber ich möchte in der Lage sein, dies zu tun, ohne zu blockieren, bis die gesamte UI.
Wie würde ich gehen über das tun dies?
InformationsquelleAutor coder_For_Life22 | 2011-07-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mehr häufiges Muster ist, setzen Sie das Kennzeichen in die Aktivität, Titelleiste, um zu zeigen, dass Sie einige hintergrund-Arbeit im Gange ist.
Zu tun, dass Sie sollten request " - Funktion
dann später
ein - /ausblenden des Fortschritts
es wird sich zeigen, Statusanzeige in der oberen rechten Ecke des Titels. Ich googelte diesen link androidyou.blogspot.com/2010/07/... es hat eine screenshot..
Würde diese Arbeit gut für honeycomb?,
Es funktionierte aber wie könnte ich gehen Sie zum festlegen einer Nachricht für ihn..wie Be....
Es funktionierte auf android honeycomb, aber nicht auf meinem gingerbread-Geräte?
InformationsquelleAutor denis.solonenko
Können Sie aufblasen, benutzerdefinierte layout in
getView()
Methode in Ihrer ImageAdapter (check Beispiel auf der offiziellen Google-website http://developer.android.com/resources/tutorials/views/hello-gallery.html) z.B.:Wo
gallery_item.xml
sieht wie folgt aus:In
getView()
- Methode übergeben werden können ProgressBar-und Bildansicht Instanzen zuDownloadTask
(Klasse, die Sie erweitertAsyncTask
) z.B.In
doInBackground()
sollten Sie herunterladen (und/oder irgendwie-cache/persistent) Bild (URL steht in mUrls[position]) und inonPostExecute()
(run in UI thread) Sie sollten:Als show-Fall Sie können eine Aktivität nur mit main.xml layout:
InformationsquelleAutor Dragan Marjanović
Kann man
ProgressBar
unter die Galerie im layout-XML kann entweder nur ein spinner (mit bar-StilWidget.ProgressBar.Large.Invers
e oderWidget.ProgressBar.Small.Inverse
) können Sie es immer Spinnen von der Einstellung des xml-Attributandroid:indeterminateOnly="true"
.Weitere Infos hier: http://developer.android.com/reference/android/widget/ProgressBar.html
Können Sie eine Asynchrone Aufgabe, die lädt Ihre Bilder in Ihre Galerie (oder wie auch immer Sie es tun), und wenn der Asynchrone Vorgang abgeschlossen ist können Sie die Sichtbarkeit von ProgressBar Anzeigen.Gegangen.
EDIT: Hier etwas code-Beispiel für das xml -
Bin ich mir auch nicht sicher, wie Sie Ihre Galerie lädt Ihre Bilder, aber im Grunde benötigen Sie einen Mechanismus, um zu sagen, Wann Sie die Bilder fertig laden (generell würde ich sagen, Sie bräuchten nicht ein spinner wie sollten die Bilder scheinen zum laden fast sofort, aber vielleicht sind Sie be etwas, das erfordert eine Menge Zeit). Wenn Sie Ihre Bilder geladen, einfach anrufen
setVisibility(View.GONE)
. Wenn Sie möchten, eine TextView sagen laden oder etwas fühlen Sie sich frei, um es in der XML als auch.Ich gab Sie ein Beispiel der xml. Ich werde nicht ins detail gehen, für die asynchrone Aufgabe oder Ihre Lademechanismus, denn ich weiß nichts über Ihre app.
Thats cool ich wissen, wie man den code für den asyncTask. Brauchte nur eine Idee von dem, was Sie sagten
InformationsquelleAutor Ken
versuchen, diesen code
}
InformationsquelleAutor ultimate
Verwenden Sie einen ProgressDialog in onPreExecute-Methode des AsyncTask
Und Abbrechen, um den dialog in der onPostExecute () - Methode
Ich möchte nur, dass es für die Anzeige in der Galerie, wo die Bilder\
was bedeuten Sie durch die Blockierung gesamte Benutzeroberfläche?
Das heißt, ich habe die Tasten auf die gleiche Geröll...ich will nicht den dialog, um zu unterbinden, dass der Benutzer die Interaktion mit der activty als ganzes. Aber ich will doch nur etwas angezeigt, damit die Benutzer wissen, die Arbeit ist getan
Ich denke, Sie können-Setzen eine textView auf dem Bildschirm an einer position, wo Sie wollen, um zu zeigen, dass etwas geschieht zunächst ausgeblendet.Zeigen Sie es, wenn im hintergrund arbeiten beginnen.Und verstecken Sie wieder nach dem beenden der hintergrund-Arbeit.Für zeigt Einsatz onPreExecute-und auszublenden verwenden Sie die onPostExectue.Sie können nicht auf UI von doInBackground
InformationsquelleAutor Rasel