Maison >Java >javaDidacticiel >Comment afficher des GIF animés dans Android à l'aide d'AnimationDrawable ou d'un objet Movie ?
Extraction d'images à partir d'un GIF animé et affichage avec AnimationDrawable
Sous Android, l'affichage d'images GIF animées était auparavant difficile en raison du manque de support natif . Cependant, une solution alternative existe : les convertir en AnimationDrawable.
Extraire des images d'un GIF animé
Malheureusement, Android ne fournit pas de mécanisme simple pour extraire des images d'un GIF animé. . Néanmoins, vous pouvez mettre en œuvre votre propre logique pour y parvenir. Une approche consiste à utiliser des bibliothèques tierces telles que Android-Gif-Decoder ou Animated GIF pour diviser le GIF en images individuelles.
Conversion des images to Drawable
Une fois que vous avez extrait les images, vous devez convertir chaque image en Drawable pour l'incorporer dans AnimationDrawable. Cela implique de créer un objet Bitmap pour chaque image et de le définir comme source du Drawable. Par exemple :
Bitmap frameBitmap = BitmapFactory.decodeByteArray(frameData, 0, frameData.length); Drawable frameDrawable = new BitmapDrawable(getResources(), frameBitmap);
Création d'un AnimationDrawable
Avec les Drawables individuels préparés, vous pouvez créer un AnimationDrawable :
AnimationDrawable animationDrawable = new AnimationDrawable(); for (Drawable frameDrawable : frameDrawables) { animationDrawable.addFrame(frameDrawable, 100); // Duration in milliseconds }
Affichage de l'image animée
Enfin, attribuez le AnimationDrawable vers un ImageView pour afficher le GIF animé :
<ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/animation_drawable" />
Solution alternative : utilisation d'un objet Movie
Fait intéressant, Android propose la classe android.graphics.Movie, qui peut décoder et afficher des GIF animés. Bien qu'elle ne soit pas bien documentée, cette approche est utilisée dans l'exemple BitmapDecode d'Android.
Pour utiliser Movie, vous pouvez récupérer le contenu du GIF via AssetManager et créer un objet Movie :
AssetManager assetManager = getAssets(); InputStream gifInputStream = assetManager.open("my_gif.gif"); Movie movie = Movie.decodeStream(gifInputStream);
Enfin, associez l'objet Movie à un ImageView pour afficher le GIF animé :
<ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/my_gif.gif" />
En suivant ces approches, vous pouvez réussir à afficher un GIF animé. GIF dans votre application Android.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!