2011-01-28 5 views
11

Quelqu'un peut-il fournir un code pour afficher les images GIF dans un webview (je suis déjà capable d'afficher la même chose en utilisant l'animation d'images png) Maintenant, je veux un moyen d'afficher les images GIF plutôt que charger les images ou dessiner les images encore et encore!GIF Affichage de l'image en utilisant WebView

Répondre

15

Gifs sont pris en charge en mode Web.

écrire un fichier html comme suit:

<html> 
<body bgcolor="white"> 
    <table width="100%" height="100%"> 
     <tr> 
      <td align="center" valign="center"> 
       <font color="gray">Some text you display</font> 
       <br/> 
       <br/> 
       <br/> 
       <br/> 
       <br/> 
       <img src="yourGIF.gif"> 
      </td> 
     </tr> 
    </table> 
</body> 

et le stocker dans le dossier de votre application « actifs » stocker également votre gif dans le même dossier. Et ne suit pour le montrer:

webview.loadUrl("file:///android_asset/your_html.html"); 
+0

J'ai fait la même chose que vous avez dit .. Le GIF est vu clairement dans la fenêtre de l'espace de travail d'Eclipse alors que .. seule la première image du GIF est affichée dans l'affichage de l'émulateur (#no animation!) – msumaithri

+0

la même chose fonctionne dans l'application de messagerie Android. Un spinner tourne avant que le message ne soit chargé. Y a-t-il quelque chose à mettre en place sur webview? – Kantesh

+0

Il est utile d'afficher gif mais cela ne gifte pas gif (ou webview) dans la disposition linéaire qui lui est allouée plutôt que si l'image est plus grosse que la taille qui lui est allouée. la webview apparaît avec scroll. Veuillez suggérer un moyen d'éviter le défilement et de corriger webview dans une disposition linéaire. –

1

oui c'est le droit que GIF prennent pas en charge dans Android Une autre solution Comme TRonZ WebView soutient gif, juste make a WebView et load the URL of the gif image et vous fait

+1

Même en 2.3 GIF n'est pas pris en charge? – msumaithri

+0

@msumaithri merci –

+0

Hey, mais le WebView supporte gif, il suffit de faire un WebView et de charger l'URL de l'image gif et vous avez terminé. – TRonZ

22

Essayez cette ..

WebView wv = (WebView) findViewById(R.id.webView1); 
wv.loadUrl("file:///android_asset/anim5.gif"); 

Appelez simplement votre image GIF d'actifs comme celui-ci ..

+2

Simple et correct. –

+0

Ceci affiche le gif. Cependant, cela prend du temps pour rendre le GIF visible. Comment puis-je montrer le GIF immédiatement? – mrmoment

+1

Où est le bon endroit pour mettre le répertoire 'android_asset' dans mon projet? La syntaxe 'fichier: /// android_asset' me conduit à croire que' android_asset' est dans le répertoire racine de votre système de fichiers, mais cela ne fonctionnera pas si je veux vérifier l'actif de mon repo ... – dinosaur

0

Vous n'avez pas besoin de code HTML ... Il suffit d'utiliser cette ligne

webViewControl.LoadUrl("file://" + pathToTheGifFile); 

Cela fonctionne pour moi.

1

Ceci est la meilleure solution pour GIF dans Android:

Insérer la dépendance suivante pour build.gradle fichier de votre projet.

dependencies { 
    compile 'pl.droidsonroids.gif:android-gif-drawable:1.1.+' 
} 

puis

The simplest way is to use GifImageView 

<pl.droidsonroids.gif.GifImageView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:src="@drawable/src_anim" 
    android:background="@drawable/bg_anim" 
    /> 

Si dessinables déclarés par android: src et/ou android: backgroun d sont des fichiers GIF alors ils seront automatiquement reconnus comme GifDrawables et animé. Si donné drawable n'est pas un fichier GIF alors les vues mentionnées fonctionnent comme ImageView et ImageButton.

https://github.com/koral--/android-gif-drawable

+0

Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et fournir le lien pour référence. Les réponses à lien uniquement peuvent devenir invalides si la page liée change. - [De l'avis] (/ review/low-quality-posts/10590628) – Marged

+0

Il est maintenant fixé – Spl2nky

0

charges gif dans une WebView et correspond à l'écran de l'appareil sans code HTML ... Essayez ce code

mWebView = ((CustomWebView)mRootView.findViewById(R.id.webview)); 
mWebView.loadUrl("file:///android_asset/file.gif"); 
mWebView.getSettings().setLoadWithOverviewMode(true); 
mWebView.getSettings().setUseWideViewPort(true); 
Questions connexes