最近的项目有了这个需求,然后上网找了找,没有找到个非常完美的方案,google上那个开源项目GifView有oom的错误,由于项目紧急,就没有深入研究代码。后来在网上找到一段代码,说白了就是一个自定义的可播放gif图片的空间。
这里使用了movie来显示,有兴趣的可以自己去研究下google的api和源代码。
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Movie;
import android.util.AttributeSet;
import android.view.View;
public class GifView extends View {
private int gifResource;
private Movie mMovie;
private long movieStart;
public GifView(Context context, byte[] data) {
super(context);
// initializeView();
setGIFResource(data);
}
public GifView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initializeView();
}
public GifView(Context context, AttributeSet attrs) {
super(context, attrs);
initializeView();
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Movie;
import android.util.AttributeSet;
import android.view.View;
public class GifView extends View {
private int gifResource;
private Movie mMovie;
private long movieStart;
public GifView(Context context, byte[] data) {
super(context);
// initializeView();
setGIFResource(data);
}
public GifView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initializeView();
}
public GifView(Context context, AttributeSet attrs) {
super(context, attrs);
initializeView();
本文介绍了一种在Android中显示gif动态图的方法,通过自定义View GifView,利用Movie类来实现GIF的播放。代码包括了从资源ID、字节数组和输入流设置GIF资源,以及在onDraw方法中更新GIF帧。
最低0.47元/天 解锁文章
4890

被折叠的 条评论
为什么被折叠?



