2011-09-05 16 views
5

Voglio riprodurre un file GIF nella mia attività corrente.Come riprodurre un file GIF in Android?

Ho un file XML in cui è presente un layout.

Voglio giocare alla GIF nella stessa classe Attività.

C'è un modo semplice per riprodurre un file GIF in una classe di attività?

+0

http://www.anddev.org/how_to_play_gif_file_in_android-t3492.html –

+1

hai provato a mostrare gif in Webview? – doNotCheckMyBlog

+0

http://www.google.com/support/forum/p/android/thread?tid=1d6c2e915ad2ff0a&hl=en –

risposta

2

Android non supporta la riproduzione di file GIF animati. Se è necessario riprodurli, è necessario suddividerli in fotogrammi e animare ogni fotogramma uno per uno.

Questo vi permetterà di dividere il file GIF http://www.xoyosoft.com/gs/

+0

Sono felice di ottenere una risposta ma: con la tela possiamo facilmente riprodurre file gif. – Siten

+0

No, non è possibile riprodurre file GIF, ma una volta suddivisi in singoli drawable, è possibile animarli utilizzando AnimationDrawable http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html –

+0

@Siten Ciao, come si fa? – GMsoF

6

È possibile utilizzare un WebView. mostrerò con un esempio:

//My activity 
public class Gift_Loading extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     Gif_loading_View view = new Gif_loading_View(this); 
     setContentView(view); 
    } 

} 

//the webView 
public class Gif_loading_View extends WebView{ 

    public Gif_loading_View(Context context) { 

     super(context);  
     loadUrl("file:///android_asset/loading_position.html"); 

     } 
} 

nelle attività cartella aggiungere questo file html:

<html> 
<body bgcolor="white"> 
    <table width="100%" height="100%"> 
     <tr> 
      <td align="center" valign="center">     
       <br/> 
       <br/> 
       <br/> 
       <font size="6">Please wait...</font> 
       <br/> 
       <br/> 
       <img src="cyclist_loading.gif" /> 

      </td> 
     </tr> 
    </table> 
</body> 
0

C'è un esempio here in cui viene creato un AnimatedGifView classe personalizzata.

Utilizza la classe android.graphics.Movie e sostituisce il metodo onDraw per ridisegnare periodicamente la vista. Ecco un estratto:

gifInputStream = context.getResources().openRawResource(R.drawable.myGIFImage); 
gifMovie = Movie.decodeStream(gifInputStream); 
gifMovie.setTime((int)movieRunDuration); 
gifMovie.draw(canvas, 0, 0); 

E 'probabilmente più opportuno convert animated GIFs to AnimationDrawables, invece, tuttavia.

0
<pl.droidsonroids.gif.GifTextView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/first" 
    /> 

Utilizzare il codice e il file GIF mettere nella cartella drawable .... e modificare il nome con il nome del file gif.

Problemi correlati