如何在Android中播放GIF文件?

时间:2011-09-05 10:37:45

标签: android gif android-image

我想在当前活动中播放GIF文件。

我有一个XML文件,其中有一个布局。

我想在同一类活动中播放GIF。

是否有一种简单的方法可以在Activity类中播放GIF文件?

4 个答案:

答案 0 :(得分:6)

您可以使用webView。 我将举例说明:

//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");

        } 
}

在assets文件夹中添加此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>

答案 1 :(得分:2)

Android不支持播放动画GIF文件。如果你需要播放它们,那么你需要将它们分成几帧,并逐个动画每一帧。

这样可以拆分GIF文件 http://www.xoyosoft.com/gs/

答案 2 :(得分:0)

有一个示例here,其中创建了自定义AnimatedGifView类。

它使用android.graphics.Movie类,并覆盖onDraw方法以定期重绘视图。这是一段摘录:

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

然而,它可能更适合于convert animated GIFs to AnimationDrawables

答案 3 :(得分:0)

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

使用代码和你的gif文件放入drawable文件夹.... 并首先使用您的gif文件名更改名称。