Autore Topic: Problema nell'utilizzo dell'oggetto camera  (Letto 1079 volte)

Offline Dani

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • danivitali
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
Problema nell'utilizzo dell'oggetto camera
« il: 27 Luglio 2010, 15:41:22 CEST »
0
Ciao a tutti, ragazzi!
Ho bisogno del vostro aiuto!
Ho un problema con l'animazione di alcune paperelle (contenute in diverse ImageView) per un giochino che sto facendo.

Dopo un certo tempo ho bisogno che alcune papere scompaiano con una certa animazione. Per capirci, l'animzione fa in modo che le papere passino da "verticali" a "orizzontali".
Per fare ciò ho creato la classe HideDuckAnimation che dovrebbe funzionare visto che l'ho già usata per una altra animazione:
Codice (Java): [Seleziona]
import android.graphics.Camera;
import android.graphics.Matrix;
import android.view.animation.Animation;
import android.view.animation.Transformation;

public class HideDuckAnimation extends Animation {

        private float pivotX;
        private float pivotY;
        private short finalDegrees;

        public HideDuckAnimation() {
                super();
        }

        @Override
        public void initialize(int width, int height, int parentWidth, int parentHeight) {
                super.initialize(width, height, parentWidth, parentHeight);
                pivotX = width / 2;
                pivotY = height;
                this.finalDegrees = -90;       
                setDuration(2000L);
                setFillAfter(true);
        }

        @Override
        protected void applyTransformation(float interpolatedTime, Transformation t) {
                Matrix matrix = t.getMatrix();
                Camera camera = new Camera();
                camera.save();
                camera.rotateX(interpolatedTime * finalDegrees);
                camera.getMatrix(matrix);
                matrix.preTranslate(-pivotX, -pivotY);
                matrix.postTranslate(pivotX, pivotY);
                camera.restore();
        }

}

Questa invece è l'activity del gioco:  (riporto solo le parti che credo siano importanti per capire dove stia il problema altrimenti sarebbe molto più lunga)
Codice (Java): [Seleziona]
public class Play extends Activity {

        private Animation hideDuckAnimation;
        private Handler handler;

        // più altre variabili per il gioco

        public void onCreate(Bundle savedInstanceState) {
                // ...altre varie istruzioni...
                hideDuckAnimation = new HideDuckAnimation();
                BeginMatch();
        }

        private void HideDuck(ImageView img) {
                img.setAnimation(hideDuckAnimation);
                hideDuckAnimation.start();
        }

        //tra le varie funzioni ci sono queste sotto riportate.

        private void BeginMatch() {

                handler.postDelayed(new Runnable() {    //faccio trascorrere 2 secondi
                        @Override
                        public void run() {
                                EndMatch();
                        }
                }, 2000);
        }

        private void EndMatch() {
                ImageView duck;
                for (short i = 0; i < 10; i++) { // 10 è il numero di papere e quindi di
                        // ImageView nel gioco
                       
                        //assegno a duck la imageview corretta e poi...
                       
                        HideDuck(duck);
                }
        }
}

Non risultano nè errori di compilazione nè in fase di esecuzione. Quello che succede è che dopo i due secondi le ImageView non vengono animate nè modificate in alcun modo, restano semplicemente così come erano prima.

Ringrazio da subito chi mi vuole dare una mano!

Offline Dani

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • danivitali
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
Re:Problema nell'utilizzo dell'oggetto camera
« Risposta #1 il: 27 Luglio 2010, 16:08:41 CEST »
0
Un aggiornamento riguardo al problema.

Per sbaglio ho aggiunto un'istruzione alla funzione HideDuck:
Codice (Java): [Seleziona]
private void HideDuck(ImageView img) {
                img.setImageResource(R.drawable.android);
                img.setAnimation(hideDuckAnimation);
                hideDuckAnimation.start();
        }
android è una normalissima immagine .png nella cartella delle risorse.

Il risultato è stato che nelle ImageView appare l'immagine android e l'animazione avviene correttamente.
Nel momento in cui però cancello quella istruzione tutto torna come prima.

Ho pensato fosse una cosa importante da dirvi. Thanks!

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:Problema nell'utilizzo dell'oggetto camera
« Risposta #2 il: 28 Luglio 2010, 15:30:05 CEST »
0
probabilmente quando chiami HideDuck non passi la imageview corretta...
infatti, nel tuo secondo post assegni una immagine e funziona.

7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Dani

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • danivitali
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
Re:Problema nell'utilizzo dell'oggetto camera
« Risposta #3 il: 28 Luglio 2010, 15:37:58 CEST »
0
Non credo sia quello il problema...
La ImageView ha già assegnata una immagine da prima che incominci a contare il tempo.

Ho aggirato il problema mettendo al posto dell'istruzione che faceva apparire l'immagine di android, l'istruzione che mi fa comparire la stessa immagine che contiene già la ImageView.

È una soluzione che funziona, ma il problema di fondo resta sempre.

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:Problema nell'utilizzo dell'oggetto camera
« Risposta #4 il: 28 Luglio 2010, 15:44:39 CEST »
0
scusami se insisto, ma il fatto che tu debba ripristinare l'immagine non può voler dire che viene passata in modo non completo, quindi magari senza riferimento alla risorsa immagine?
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Dani

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • danivitali
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
Re:Problema nell'utilizzo dell'oggetto camera
« Risposta #5 il: 28 Luglio 2010, 15:57:07 CEST »
0
Aspetta scusami ho sbagliato  :-\

Avevo fatto quella prova, cioè sostituire all'immagine di android quella già presente nella ImageView, ma il problema resta. Non viene eseguita nessuna animazione neanche facendo questa sorta di "refresh" del contenuto della ImageView.

A quanto pare gli sta simpatico android visto che solo con la sua immagine sembra funzionare  :-P

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:Problema nell'utilizzo dell'oggetto camera
« Risposta #6 il: 28 Luglio 2010, 16:18:15 CEST »
0
 :-)

ok.
Per un qualche motivo la imageView che gli passi non ha una risorsa valida. Prova a cercare lì il problema.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/