2010-07-20 7 views
2

Lorsque j'essaie de coder une animation image par image dans Eclipse, cela me donne un bogue. J'ai trouvé quelque chose sur Internet qui dit qu'ils ont foiré dans la documentation du tutoriel sdk mais je ne peux m'empêcher de me demander ce que android: id = "sélectionné" signifie ou ce qui devrait être mis dans les citations à la place.Animations image par image

Aussi, quelqu'un peut-il m'expliquer la dernière partie du tutoriel d'animation d'image? http://developer.android.com/guide/topics/resources/animation-resource.html#Frame Mettez-vous un autre code dans le nom de fichier .Java, et si oui, où l'avez-vous mis? Je ne peux pas comprendre où placer le second code qui n'est pas XML. Je pense que je dois savoir ce que le code ci-dessous et où il doit aller:

ImageView fileimage = (ImageView) findViewById(R.id.file_image); 
fileimage.setBackgroundResource(R.drawable.file_image2); 

fileAnimation = (AnimationDrawable)fileimage.getBackground(); 
fileAnimation.start(); 

Mais voici le code XML je:

<animation-list android:id="selected" android:oneshot="false"> 
<item android:drawable="@drawable/filename" android:duration="200" /> 
<item android:drawable="@drawable/filename2" android:duration="200" /> 
</animation-list> 

quoi que ce soit doivent être enlevés ou ajoutés de cela? Je ne sais pas quoi faire d'autre, parce que j'ai besoin de démarrer l'animation et d'avoir le code pour ça (le premier) mais je ne sais pas où ça va, ou si j'ai besoin d'un autre code avec.

+0

S'il vous plaît, évitez ce type de titres et s'il vous plaît modifier votre question. – Macarse

Répondre

3

Voici comment je l'ai implémenté.

Dans votre fichier java principal, vous devriez avoir quelque chose comme ça.

public class Main extends Activity { 
AnimationDrawable mainanimation; 

public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    setContentView(R.layout.main); 

    ImageView mainimage = (ImageView) findViewById(R.id.MainAnim); 
    mainimage.setBackgroundResource(R.anim.mainanim); 
    mainanimation = (AnimationDrawable) mainimage.getBackground(); 

Vous définissez le ImageView dans votre fichier de mise en page main.xml au xml qui contient l'animation (R.id.MainAnim)

Ensuite, dans votre MainAnim.xml (situé dans res/anim) le fichier que vous écrivez

<?xml version="1.0" encoding="utf-8"?> 
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> 
<item android:drawable="@drawable/image1" android:duration="2000" /> 
<item android:drawable="@drawable/image2" android:duration="2000" /> 
</animation-list> 

Maintenant, l'image1 et l'image2 vont alterner d'avant en arrière à 2 secondes chacune. Aussi, je n'ai pas utilisé andriod: id = "selectable".

Pour résumer, vous avez besoin de 3 fichiers. Votre Main.java, votre fichier de disposition main.xml et votre fichier mainanim.xml situé dans res/anim. Aussi vos 2 images dans le dossier drawable.

Espérons que cela éclaircira un peu.

+0

Il l'efface mieux mais je n'ai pas de fichier mainanim.xml ni de dossier anim. Avez-vous besoin de créer un dossier anim en res? Je reçois également l'erreur "id et anim ne peut pas être résolu ou n'est pas un champ." – Mia

+1

oui vous devez créer un dossier "anim" et un fichier xml qui contient le code d'animation ci-dessus. – Cameron

+0

Pour ceux qui ne savent pas comment démarrer l'animation, il peut être créé à l'intérieur d'un onTouchEvent tel qu'indiqué au bas de cette page de documentation android: http://developer.android.com/guide/topics/graphics /2d-graphics.html#frame-animation – justinl