2013-03-25 83 views
3

我已經編寫了代碼來顯示單個圖像的動畫。現在我想在gridview中顯示gif圖像來顯示動畫圖像。是否有可能以及如何做到這一點?在gridview中顯示GIF動畫

回答

1

我認爲它可以幫助你。這是一個GifWebView演示..請檢查一下......

mylayout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <LinearLayout 
     android:id="@+id/toplayout" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 

    </LinearLayout> 

</RelativeLayout> 

MyLayout.java文件

package com.test; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.LinearLayout; 

public class MainActivity extends Activity 
{ 
    LinearLayout toplayout; 
    GifWebView view; 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.mylayout); 

     toplayout = (LinearLayout)findViewById(R.id.toplayout); 

     InputStream stream = null; 
     try 
     { 
      stream = getAssets().open("ppp.gif");   
     } catch (IOException e) { 
     e.printStackTrace(); 
     } 

     view = new GifWebView(this, stream); 
     toplayout.addView(view);  
    } 
} 

GifWebView.java文件

package com.test; 

import android.content.Context; 
import java.io.InputStream; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Movie; 
import android.os.SystemClock; 
import android.view.View; 

public class GifWebView extends View { 
    private Movie mMovie; 
    InputStream mStream; 
    long mMoviestart; 

    public GifWebView(Context context, InputStream stream) { 
     super(context); 
     mStream = stream; 
     mMovie = Movie.decodeStream(mStream); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     canvas.drawColor(Color.TRANSPARENT); 
     super.onDraw(canvas); 
     final long now = SystemClock.uptimeMillis(); 

     if (mMoviestart == 0) { 
      mMoviestart = now; 
     } 
     final int relTime = (int) ((now - mMoviestart) % mMovie.duration()); 
     mMovie.setTime(relTime); 
     mMovie.draw(canvas, 10, 10); 
     this.invalidate(); 
    } 
} 

放入資產目錄中的GIF文件,並給予適當的名稱。在這個演示名稱是ppp.gif。

+0

對於單個圖像我已經完成我想在gridview – user1758835 2013-03-25 06:15:46

+0

我已經爲你做了一個演示..我怎麼發送你? – Ajay 2013-03-25 07:06:35

+0

你可以發送它在[email protected] – user1758835 2013-03-25 07:21:06

0

我會嘗試使用this view並將其簡單地添加到GridView自定義單元格佈局中。

本質上,佈局中的GifView應該工作。