ProgressDialog Animieren

StefMa

StefMa

Dauergast
450
Hi,

ich würde gerne mein ProgressDialog so animieren wie es Google+ tut: http://i.imgur.com/KP2qbvR.gif
Zum Verständniss: Wei man ein ProgessDialog erstellt weiß ich. Wie man einen Dialog "customiziert" weiß ich auch. Aber mit Animationen habe ich generell noch nie gearbeitet.

Bin dort für jede Hilfe dankbar. Danke! :)

Gruß
 

Anhänge

  • film.jpg
    film.jpg
    2,5 KB · Aufrufe: 238
Ich kenn die Animation von Google+ nicht ... (sieht die so aus wie in deinem *.gif?) //EDIT: ach, das *.gif ist von Google+ :)
Aber mal vll. als Ansatz: normalen AlertDialog nehmen, erweitern mit der Animation (über eigenes Layout) und fertig ...

Den ProgressDialog würd ich nicht verwenden, da der doch wahrscheinlich recht fest auf die zwei/drei Arten von Animationen die Google vorgibt, beschränkt ist ...
 
Danke. Aber eigentlich ist genau das problem mit "erweitern mit der Animation".
Wie ich ein DialogView mit einem anderen View überlagere (damit es anders aussieht) ist mir bekannt.
Code:
AlertDialog.setView(view);
Allerdings ist das ja statisch.

Wie bekomme ich Code dort hinein, damit ich Crossfading Two Views | Android Developers machen kann?

Gruß
 
Hmm noch hieroglyphen für mich Kardroid :D

Für den Anfang würde ich so eine Animation machen wollen:
hrte5bk.gif

Also einfach nur Drei Punkte nebeneinander. (In form von Bildern)
Die geschwindigkeit davon kann man ja auch regeln.

Aber wie gesagt, ich weiß nicht wie ich die Logik hinter dem View bringe. Und auch nicht ob das hier: Crossfading Two Views | Android Developers
Das richtige Tuturoial ist.

Gruß
 
Ich würde dir gerne mehr helfen, aber ich weiß jetzt nicht mehr genau, was du machen möchtest.

Möchtest du jetzt "einfach" die Progressbar umgestalten, oder möchtest du nach dem der Progress vorbei ist die Views crossfaden?
 
Ich möchte die Progressbar umgestalten. Dazu (so dachte ich) verwende ich das Crossfaden example (Source-Code hier) auf den Dialog an.
Vielleicht bin ich da auch dem falschen weg...

Gruß
 
Ok.

Wenn du das Beispiel schon lauffähig hast, dann kannst du die Zeile:
mLoadingView = findViewById(R.id.loading_spinner);

Ersetzen mit dem, was ich dir vorher geschrieben habe.
Zuerst erstellst du wie in deinem zweiten Gif, 3 einzelne Bilder mit jeweils einem Punkt.
Ein Bild mit dem Punkt links, ein Bild mit dem Punkt in der Mitte und ein Bild mit dem Punkt rechts.
Alle Bilder müssen die gleiche Breite und Höhe haben.

Dann erstellst du eine XML-Datei in res/anim/blabla.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
    <item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
</animation-list>
Dann setzt du diese Datei statt dem Loadingspinner ein:
Code:
ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.[URL="http://developer.android.com/reference/android/view/View.html#setBackgroundResource%28int%29"]setBackgroundResource[/URL](R.drawable.blabla);

rocketAnimation = (AnimationDrawable) rocketImage.[URL="http://developer.android.com/reference/android/view/View.html#getBackground%28%29"]getBackground()[/URL];
rocketAnimation.[URL="http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html#start%28%29"]start()[/URL];
Jetzt müsste statt dem Loading-Spinner deine Animation zu sehen sein.
 
  • Danke
Reaktionen: StefMa
Hi,

also erstmal hat es genau so funktioniert. Danke! :)
Allerdings ist das ganze noch überhaupt nicht schön. Siehe hier: http://i.imgur.com/OrRQce8.gif
(Das es so abgehackt aussieht liegt an der Convertierung zum *gif. Auf dem Devices läuft es smooth)

ich habe die drei Bilder im Anhang genommen. Also einfach ein Transparentes bild mit 500x125 Pixeln und habe es dann wie erklärt eingefügt.
Allerdings sind es im DialogBuilder keine echten Kriese mehr sondern mehr ovale.. Wie kriege ich das hin?

Danke
 

Anhänge

  • anim_0.png
    anim_0.png
    652 Bytes · Aufrufe: 179
  • anim_1.png
    anim_1.png
    647 Bytes · Aufrufe: 168
  • anim_2.png
    anim_2.png
    646 Bytes · Aufrufe: 158
Was für Attribute hat deine "rocket_image" (ImageView)?
 
Was für Attribute? Gar keine.. Habe es genauso gemacht wie du hier geschrieben. Mehr nicht...

Btw Auf dem Handy sieht es besser aus. Aber nicht perfekt rund...

Gesendet von meinem Nexus 4 mit der Android-Hilfe.de App
 
Hallo StefMa,

kleinerkathe bin zwar nicht ich, aber die Frage war schon korrekt.
Setz einfach die DP Zahl für Breite und Höhe bei der ImageView.
Sehr wahrscheinlich hast du wrap_content, und dadurch sieht es so verzerrt aus.
 
Ich habe garkeine größe eingesetzt. Weder wrap_content noch match_parent oder eine fixe Pixel anzahl.

€dit: Wie bekomme ich denn die DP-Anzahl von aus meinen Pixeln? :o
 

Ähnliche Themen

T
Antworten
2
Aufrufe
946
TimWeiland
T
SM-T110 UND GT-I9300
  • SM-T110 UND GT-I9300
Antworten
19
Aufrufe
1.088
SM-T110 UND GT-I9300
SM-T110 UND GT-I9300
SM-T110 UND GT-I9300
  • SM-T110 UND GT-I9300
2
Antworten
38
Aufrufe
2.548
SM-T110 UND GT-I9300
SM-T110 UND GT-I9300
Zurück
Oben Unten