该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
第一步,新建一个class定义一个类【GifView.java】(以下代码可以完全复制粘贴不做任何更改)
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Movie;
import android.util.AttributeSet;
import android.view.View;
public class GifView extends View {
private long movieStart;
private Movie movie = null;
private boolean bStart = true;
/设置gif文件位置
private int nLeft = 0;
private int nTop = 0;
//此处必须重写该构造方法
public GifView(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
//以文件流(InputStream)读取进gif图片资源
}
public void setGifImage(int resid) {
movie = Movie.decodeStream(getResources().openRawResource(resid));
}
public void setState(boolean bFlag) {
bStart = bFlag;
}
public void setPositon(int left, int top) {
nLeft = left;
nTop = top;
}
@Override
protected void onDraw(Canvas canvas) {
if (bStart) {
if (movie != null) {
long curTime = android.os.SystemClock.uptimeMillis();
//第一次播放
if (movieStart == 0) {
movieStart = curTime;
}
int duraction = movie.duration();
int relTime = (int) ((curTime - movieStart) % duraction);
movie.setTime(relTime);
movie.draw(canvas, nLeft, nTop);
//强制重绘
invalidate();
}
}
super.onDraw(canvas);
}
}