Autore Topic: Più di un AnimationDrawable contemporaneamente  (Letto 496 volte)

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
Più di un AnimationDrawable contemporaneamente
« il: 20 Maggio 2011, 20:53:51 CEST »
0
Ciao,
devo far partire contemporaneamente due AnimationDrawable ma il secondo non parte mai. Qualche idea?
Vi metto il mio codice, uso la onWindowFocusChanged:

Codice: [Seleziona]
public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);     
      setContentView(R.layout.main);
      Button mButtonPlay = (Button) findViewById(R.id.ButtonPlay);
      mButtonPlay.setBackgroundResource(R.drawable.button_play);     
      buttonAnimationPlay = (AnimationDrawable)mButtonPlay.getBackground();
      Button mButtonOptions = (Button) findViewById(R.id.ButtonOptions);
      mButtonOptions.setBackgroundResource(R.drawable.button_options);
      buttonAnimationOptions = (AnimationDrawable)mButtonPlay.getBackground();
  }

Codice: [Seleziona]
@Override
  public void onWindowFocusChanged(boolean hasFocus)
  {
      if (hasFocus)
      {
    buttonAnimationPlay.start(); 
    buttonAnimationOptions.start(); 
      }
      else
      {   
    buttonAnimationPlay.stop(); 
    buttonAnimationOptions.stop(); 
      }
  }

Ho provato anche la soluzione con una classe Starter, ma niente.
Zapmobilegames website
Tic Tank Toe: a new approach for a classic game

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:Più di un AnimationDrawable contemporaneamente
« Risposta #1 il: 27 Maggio 2011, 10:46:07 CEST »
0
Ok alla fine ho risolto.

C'era uno stupido errore nel codice! Questo è quello giusto:

   
   
Codice: [Seleziona]
  final Button mButtonPlay = (Button) findViewById(R.id.ButtonPlay);
          mButtonPlay.setBackgroundResource(R.drawable.button_play);
          buttonAnimationPlay = (AnimationDrawable)mButtonPlay.getBackground();
         
         
          final Button mButtonOptions = (Button) findViewById(R.id.ButtonOptions);
          mButtonOptions.setBackgroundResource(R.drawable.button_play);
          buttonAnimationOptions = (AnimationDrawable)mButtonOptions.getBackground();

Ho anche provato ad aggiungere Views da codice ed ovviamente anche questo funziona adesso. Per tutti quelli che vogliono usare l'una o l'altra tecnica, ecco il codice alternativo:

Codice: [Seleziona]
    RelativeLayout Relative = (RelativeLayout) findViewById(R.id.RelativeForButtons);
          RelativeLayout.LayoutParams relativeParamsPlay =
                  new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
          RelativeLayout.LayoutParams relativeParamsOptions =
                  new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
         
          relativeParamsPlay.addRule(RelativeLayout.BELOW,R.id.Title);
          relativeParamsPlay.addRule(RelativeLayout.CENTER_IN_PARENT);
          final Button mButtonPlay = new Button(this);
          mButtonPlay.setBackgroundResource(R.drawable.button_play);
          buttonAnimationPlay = (AnimationDrawable)mButtonPlay.getBackground();
          mButtonPlay.setId(1);
          mButtonPlay.setText("PLAY");
          Relative.addView(mButtonPlay,relativeParamsPlay);         
         
          final Button mButtonOptions = new Button(this);
          mButtonOptions.setBackgroundResource(R.drawable.button_options);
          buttonAnimationOptions = (AnimationDrawable)mButtonOptions.getBackground();
          mButtonOptions.setId(2);
          mButtonOptions.setText("OPTIONS");
          relativeParamsOptions.addRule(RelativeLayout.BELOW, mButtonPlay.getId());
          relativeParamsOptions.addRule(RelativeLayout.CENTER_IN_PARENT);
          Relative.addView(mButtonOptions,relativeParamsOptions);       

Tutto questo è nell'OnCreate. Per lanciare le animazioni, usate onWindowFocusChanged.

Spero sia utile ;)
Zapmobilegames website
Tic Tank Toe: a new approach for a classic game