2011-10-02 4 views
0

Donc, je suis nouveau à la programmation avec android et l'une des premières choses que j'essaie de faire est de créer une animation de base qui démarre d'elle-même. Rien de compliqué, juste une animation en boucle. J'essaie de m'en tenir à l'image-par-image parce qu'elle semble la plus simple et la plus facile à comprendre. J'ai regardé de nombreux didacticiels/sites Web/vidéos (y compris les sites de développement Android) sur la façon de le faire et ne peux pas comprendre ce que je fais mal. Je suis sûr que j'ai une erreur de logique simple quelque part. Voici mon code posté. Est-ce que quelqu'un peut m'aider? Merci pour l'aide! (En note, ceci est spécifiquement exécuté sur un émulateur NookColor, selon le site de Nook Developer, le Nook utilise le dernier Android.Malheureusement, le site Nook ne donne aucun tutoriel ou quoi que ce soit d'utile, seulement les mêmes liens aux développeurs Android.)Animation Android - image par image?

//main class 

public class WallpaperActivity extends Activity { 

    AnimationDrawable animSequence; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     ImageView animImg = (ImageView) findViewById(R.id.animatepic); 
     animImg.setBackgroundResource(R.drawable.animation); 
     animSequence = (AnimationDrawable) animImg.getBackground(); 

    } 


    @Override 
    public void onWindowFocusChanged(boolean hasFocus) 
    { 
     super.onWindowFocusChanged(hasFocus); 
     animSequence.start(); 
    } 
} 


//animation.xml class (<< this is not my main.xml class) 

    <?xml version="1.0" encoding="utf-8"?> 
    <animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/animatepic" android:oneshot="false" > 

    <item android:drawable="@drawable/a" android:duration="200" /> 
    <item android:drawable="@drawable/b" android:duration="200" /> 
    <item android:drawable="@drawable/c" android:duration="200" /> 
    <item android:drawable="@drawable/d" android:duration="200" /> 
    <item android:drawable="@drawable/e" android:duration="200" /> 
    <item android:drawable="@drawable/f" android:duration="200" /> 
    <item android:drawable="@drawable/g" android:duration="200" /> 
    <item android:drawable="@drawable/h" android:duration="200" /> 
    <item android:drawable="@drawable/i" android:duration="200" /> 
    <item android:drawable="@drawable/j" android:duration="200" /> 
    <item android:drawable="@drawable/k" android:duration="200" /> 
    <item android:drawable="@drawable/l" android:duration="200" /> 
    <item android:drawable="@drawable/m" android:duration="200" /> 
    <item android:drawable="@drawable/n" android:duration="200" /> 
    <item android:drawable="@drawable/o" android:duration="200" /> 
    </animation-list> 
+0

Obtenez-vous une erreur ou votre animation n'est pas mise en route ... –

+0

La seule réaction que je suis arrivé était l'émulateur chargerait et il dirais que l'application devait être " Forced Closed " – Derek

Répondre

0

Avez-vous dit quelle erreur vous obteniez?

Dans tous les cas, votre exemple de code semble avoir été updated.

Voici sa zip file que vous pouvez télécharger.

+0

Merci pour le code Stephan, ça m'a vraiment aidé. J'ai réalisé ce que mon erreur était et bien sûr, c'était un simple morceau de code. Dans ma classe animation.xml publiée, j'ai donné l'animation à l'identifiant de animatepic, puis j'essaye de le référencer dans le WallPaperActivity. Au lieu de cela j'aurais dû référencer l'objet ImageView dans mon fichier main.xml ... Merci pour votre aide! – Derek

0
ImageView animImg = (ImageView) findViewById(R.id.animatepic); 
animImg.setBackgroundResource(R.drawable.animation); 
animSequence = (AnimationDrawable) animImg.getBackground(); 
animSequence.start(); 

essayer cette

Questions connexes