Android - Schaltfläche mit Drehen / Drehen "Laden" Bild, wenn gedrückt

8

Ich habe eine große Schaltfläche "Anmelden" in meiner App. Wenn der Benutzer auf diese Schaltfläche klickt, möchte ich den Text durch "Anmelden ..." ersetzen, ihn nach links anstatt nach Mitte ausrichten und einen Kreis auf der rechten Seite (aber immer noch innerhalb der Schaltfläche) platzieren. Ich möchte an anderen Stellen in meiner App im Wesentlichen die gleiche Schaltfläche verwenden (aber mit anderem Anfangs- und Ladetext).

Was ist der beste Weg, dies zu tun? Für die eigentliche drehende Grafik plante ich, das @drawable/spinner_white_16 zu verwenden, das mit Android kommt.

Danke.

    
Mick Byrne 07.11.2012, 12:11
quelle

3 Antworten

9

Sie können Ihre eigene Schaltfläche mit einem RelativeLayout erstellen, das eine TextView und eine ImageView enthält.

%Vor%

Und dann, in was auch immer Ihre Login-Methode aufgerufen wird, ändern Sie den Inhalt der TextView, machen Sie es übergeordnete Recht ausrichten, und setzen Sie die Sichtbarkeit von ImageView sichtbar.

%Vor%

Und dann hätte ich auch einen Code, der diese Änderungen rückgängig macht, wenn die Anmeldung fehlschlägt.

    
Dave 07.11.2012, 13:38
quelle
6

Hier ist eine Implementierung, die ich entwickelt habe, hoffentlich wiederverwendbar:

ProgressButton

Wenn der Benutzer in diesem Moment auf die Schaltfläche klickt, wird das Zeichen (und das Animieren) für Sie angezeigt, aber Sie müssen die Ladeanimation manuell schließen, sobald Sie Ihre Hintergrundaufgabe abgeschlossen haben:

%Vor%

Dadurch werden alle Animationen für Sie gelöscht und der vorherige Text wird angezeigt. Es fehlt nur, dass es während der Animation keinen Text gibt, aber ich denke, dass man dafür etwas zusammenhacken kann. Ich beabsichtige, dies etwas weiter auszudehnen, so dass Sie etwas wie _progressButton.setProgress(10) aufrufen und dann den Prozentsatz festlegen können, der erledigt wird. Ich kann es sogar threadsicher machen.

Auf diese Weise müssen Sie nicht mehrere Layouts verwenden und alle Textansichten über Schaltflächen einbetten, und alles wird für Sie erledigt.

    
Sun 24.11.2013 16:36
quelle
3

Erstellen Sie Ihre eigene Schaltfläche, die aus einem zentrierten TextView und GONE ImageView besteht. Nach dem Klick verschiebe TextView nach links und mache ImageView mit deinem Zeichensatz sichtbar.

    
slezadav 07.11.2012 12:18
quelle