Autore Topic: Animazioni con cambio Drawable  (Letto 520 volte)

Offline Giamme

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic
  • Play Store ID:
    appLOOPiamo
  • Sistema operativo:
    Windows 7
Animazioni con cambio Drawable
« il: 27 Marzo 2013, 12:40:42 CET »
0
Ciao a tutti!

Ho un problemino.

Sto facendo una schermata che al premere dell'user su un'immagine mi cambia il Drawable di una terza ImageView con un leggero fade(tramite Animation) del tutto.

Questo è il codice:
Codice (Java): [Seleziona]
public class Prodotti extends Activity {

        int x;
        ImageView Up, Down;
        ImageView xImg;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                requestWindowFeature(Window.FEATURE_NO_TITLE);
                getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                                WindowManager.LayoutParams.FLAG_FULLSCREEN);

                super.onCreate(savedInstanceState);
                setContentView(R.layout.prodotti);

                x = 1;
                xImg = (ImageView) findViewById(R.id.imageView1);

                Up = (ImageView) findViewById(R.id.imageView3);
                Down = (ImageView) findViewById(R.id.imageView2);

                Up.setOnClickListener(new View.OnClickListener() {

                        @Override
                        public void onClick(View v) {
                                // TODO Auto-generated method stub
                                up(v);
                        }
                });

                Down.setOnClickListener(new View.OnClickListener() {

                        @Override
                        public void onClick(View v) {
                                // TODO Auto-generated method stub
                                down(v);
                        }
                });
        }

        public void up(View v) {
                x++;

                checkX();
               
        }

        public void down(View v) {
                x--;

                checkX();
        }

        private void checkX() {
                // TODO Auto-generated method stub
                switch (x) {
                case (1): {
                        startingAnimation();
                        xImg.setImageResource(R.drawable.test_uno);
                        endingAnimation();
                        break;
                }
                case (2): {
                        startingAnimation();
                        xImg.setImageResource(R.drawable.test_due);
                        endingAnimation();
                        break;
                }
                case (3): {
                        startingAnimation();
                        xImg.setImageResource(R.drawable.test_tre);
                        endingAnimation();
                        break;
                }
                case (4): {
                        startingAnimation();
                        xImg.setImageResource(R.drawable.test_quattro);
                        endingAnimation();
                        break;
                }
                case (5): {
                        x = 1;
                        checkX();
                        break;
                }
                case (0): {
                        x = 4;
                        checkX();
                        break;
                }
                }
        }
       

        private void endingAnimation() {
                // TODO Auto-generated method stub
                ObjectAnimator animation2 = ObjectAnimator.ofFloat(Up, "alpha", 255);
                animation2.setDuration(1000);
                animation2.start();
               
        }

        private void startingAnimation() {
                // TODO Auto-generated method stub
                ObjectAnimator animation = ObjectAnimator.ofFloat(Down, "alpha", 0);
                animation.setDuration(1000);
                animation.start();
        }

}

Questo è il problema:

Il fade non funziona con il cambio di Drawable che faccio.
Ho già provato a mettere in "sleep", ma non funziona comunque, perché "sleeppa" anche l'animazione.

Ora, che devo fà per avere un'animazione che al contempo mi permetta di cambiare il Drawable dell'ImageView?

Grazie a tutti in anticipo!
"Tutto ciò che è necessario per il trionfo del male è che gli uomini buoni non facciano nulla."
Edmund Burke