270 votes

Afficher le GIF animé

Je veux afficher des images en GIF animé dans mon application. Comme je l'ai appris à la dure Android ne supporte pas les GIF animés en mode natif.

Toutefois, il peut afficher des animations à l'aide de AnimationDrawable: http://developer.android.com/guide/topics/graphics/2d-graphics.html#frame-animation

L'exemple utilise l'animation enregistré en tant que cadres dans les ressources de l'application, mais ce dont j'ai besoin est d'afficher gif animé directement.

Mon plan est de briser les GIF animés à des images et ajouter chaque image comme dessinés à AnimationDrawable.

Personne ne sait comment extraire les images de GIF animés et de les convertir dans Drawable?

193voto

Pointer Null Points 14229

Android peut effectivement décoder et afficher des GIF animés, en utilisant la classe android.graphics.Movie.

Ce n'est pas trop documenté, mais il est en référence SDK . De plus, il est utilisé dans Samples dans ApiDemos dans l' exemple BitmapDecode avec un drapeau animé.

22voto

Leonti Points 1939

J'ai résolu le problème en divisant les animations GIF en images avant de l'enregistrer sur le téléphone, donc je n'aurais pas à traiter avec Android.

Ensuite, je télécharge chaque image sur le téléphone, crée Drawable à partir de celui-ci, puis créer AnimationDrawable - très similaire à l'exemple de ma question

17voto

SimonVeloper Points 571

j'ai trouvé un moyen très facile, avec une belle et simple exemple ici

affichage animé widget

Avant de la faire fonctionner il y a quelques changements à faire dans le code

DANS LA SUITE DE

@Override
public void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceStated);   
setContentView(new MYGIFView());

}

}

il suffit de remplacer

setContentView(new MYGIFView());

dans

 setContentView(new MYGIFView(this));

ET DANS

public GIFView(Context context) {
super(context);


Provide your own gif animation file

is=context.getResources().openRawResource(R.drawable.earth);
movie=Movie.decodeStream(is);

}

REMPLACER LA PREMIÈRE LIGNE DANS

public MYGIFView(Context context) 

selon le nom de la classe...

après avoir fait ce que peu de modifications, il doit travailler comme pour moi...

espérons que cette aide

8voto

fbtb Points 408

c'est certainement un bug, voir IssueTracker pour plus d'informations.

7voto

HopeRunsDeep Points 536

Utilisez ImageViewEx , une bibliothèque qui rend l'utilisation d'un gif aussi simple qu'avec un ImageView .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X