Autore Topic: AnimationDrawable non parte...  (Letto 764 volte)

Offline Grifith

  • Utente junior
  • **
  • Post: 56
  • Respect: +1
    • Mostra profilo
    • La mia prima applicazione...
AnimationDrawable non parte...
« il: 16 Maggio 2011, 11:50:54 CEST »
0
Buongiorno.

A seguito dei problemi riscontrati qui, ho deciso di adottare una tecnica differente.

Seguente le indicazioni di questo wiki, ho creato un'animazione che simula una classica gif di loading delle informazioni.

Se utilizzo il medesimo codice, va tutto bene, ma, dato che mi interessa che l'animazione parta al momento della creazione della schermata, ho modificato il codice in questa maniera:
Codice (Java): [Seleziona]
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
               
                super.onCreate(savedInstanceState);
        setContentView(R.layout.giramento);
        ImageView imgvw_animazione = (ImageView) findViewById(R.id.imageview_animazione);
        imgvw_animazione.setBackgroundResource(R.anim.animazione_palline);
        final AnimationDrawable animazione = (AnimationDrawable) imgvw_animazione.getBackground();
 
       
       
       
        animazione.start();
               
               
        }

Purtroppo, il risultato, è il non avvio dell'animazione... Avete qualche idea del perchè di tale problematica e di come risolvere?

Grazie mille

Offline Grifith

  • Utente junior
  • **
  • Post: 56
  • Respect: +1
    • Mostra profilo
    • La mia prima applicazione...
Re:AnimationDrawable non parte...
« Risposta #1 il: 16 Maggio 2011, 12:17:54 CEST »
+1
Mi rispondo da solo...

Ho appena trovato la soluzione. Basta far partire lo start in un Runnable a parte... In questo modo:

Codice (Java): [Seleziona]
....
ImageView imgvw_animazione = (ImageView) findViewById(R.id.imageview_animazione);
        imgvw_animazione.setBackgroundResource(R.anim.animazione_palline);
        animazione = (AnimationDrawable) imgvw_animazione.getBackground();

 imgvw_animazione.post(new Starter());


....


class Starter implements Runnable {

                        public void run() {
                                animazione.start();
                               
                        }
               
            }

Praticamente si crea l'animationDrawable nel onCreate dell'activity. E si fa partire l'animazione in una classe runnable a parte...

Spero vi possa essere utile...

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:AnimationDrawable non parte...
« Risposta #2 il: 16 Maggio 2011, 13:00:12 CEST »
0
+1 perché hai pubblicato la soluzione che hai trovato da solo.
 8-)
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Zappescu

  • Utente junior
  • **
  • Post: 110
  • Respect: +7
    • Mostra profilo
    • Tic Tank Toe
  • Dispositivo Android:
    HTC Magic
  • Play Store ID:
    Zapmobilegames
  • Sistema operativo:
    Win XP
Re:AnimationDrawable non parte...
« Risposta #3 il: 20 Maggio 2011, 17:29:37 CEST »
0
Edit
« Ultima modifica: 20 Maggio 2011, 20:52:51 CEST da Zappescu »
Zapmobilegames website
Tic Tank Toe: a new approach for a classic game

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:AnimationDrawable non parte...
« Risposta #4 il: 14 Agosto 2013, 05:33:45 CEST »
0
Scusate se riapro un vecchio topic. Ho esattamente lo stesso problema e quando utilizzo una classe starter funziona su tutti i telefoni sui quali testo l'applicazione ad eccezione del Samsung galaxi S III. Come si può risolvere il problema su questo telefono? Grazie

Post unito: 15 Agosto 2013, 04:50:48 CEST
Ho risolto utilizzando questa soluzione. Prima non riuscivo a visualizzare l'animazione perché ridimensionavo l'imageview prima di avviare l'animazione ma escludevo il caso in cui la larghezza del display fosse maggiore della larghezza delle mie immagini. Grazie lo stesso.
« Ultima modifica: 15 Agosto 2013, 04:50:48 CEST da elfo83, Reason: Merged DoublePost »