2010-12-03 13 views
10

Ich möchte den Fortschrittsbalken (in Form eines rotierenden Kreises oder ähnlichem) anzeigen, wenn das Bild von einem entfernten Ort geladen wird.Wie lade ich die Fortschrittsanimation für ein Bild?

Ich möchte nicht Standard ProgressBar, die in der Mitte des Bildschirms angezeigt wird. Ich möchte es in der Mitte des ImageView (oder Layout, das ImageView hält) haben. Gibt es einen einfachen Weg dies zu tun? Kann ich beispielsweise progressBar an eine View anhängen?

Ich habe über FrameAnimation gelesen. Ich denke, ich werde das tun, aber zuerst möchte ich sicherstellen, dass ich das Rad nicht neu erfinde.

Danke.

+0

Uh. Vergiss es. Es gibt ein ProgressBar-Steuerelement, das ich in mein Layout einfügen und sichtbar machen oder weglassen kann, wie ich es wünsche. – bobetko

Antwort

5

Sie eine ProgressBar in Imagelayout Halter anbringen kann,

RelativeLayout -> Image -> ProgressBar

dann können Sie einstellen Layout ausrichten params dem Fortschrittsbalken zu zeigen, wo Sie wollen.

Sie diese in einem XML-Layout tun können, und später programmatisch aufbläst, so, wenn Sie/starten Sie das Bild Download-Prozess stoppen Sie die ProgressBar Sichtbarkeit Ein/Aus

+2

Ich suche auch nach der gleichen Funktionalität, Könnten Sie bitte einen Beispielcode zur Verfügung stellen? – h4ck3d

17

Wollen Sie wie ein Spinner einstellen kann?

Ja, Sie können das tun:

heren ein Beispielcode:

<!--Grey Spinner--> 
<ProgressBar 
    android:id="@android:id/progress" 
    style="?android:attr/progressBarStyleSmall" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
/> 
<!--Black Spinner--> 
<ProgressBar 
    android:id="@android:id/progress" 
    style="?android:attr/progressBarStyleSmallInverse" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
/> 

Hier sind einige andere Stilattribute Sie verwenden können, nur über Stil ersetzen Attribute mit einem von diesen, z.B. style=?android:attr/<one of the attribute from below list>

progressBarStyleSmallTitle 
    progressBarStyleLarge 
    progressBarStyleLargeInverse 
    progressBarStyleHorizontal 
    progressBarStyleSmallTitle 

Sie müssen auch beachten, dass, wenn Sie Bild sind das Herunterladen aus dem Internet nicht UIThread verwenden. Sie können auch eine Fortschrittsleiste in der Titelleiste hinzufügen.

hinzufügen Spinner Titelleiste mit folgendem Code (Anrufanforderung .. in onCreate()):

requestWindowFeature(Window.FEATURE_PROGRESS); 
//calling setContentView() after requesting 
setContentView(R.layout.main); 
setProgressBarVisibility(true); 
//call setProgressBarVisibility(false); to turn it off 

Hoffnung, das hilft. Prost!

Verwandte Themen