android 播gif,android Gif播放

public class GifSurface extends SurfaceView implementsCallback{privateMovie movie;private static int ZOOM = 2;publicString path;private Handler handler = newHandler();private Runnable runnable = newRunnable() {

@Overridepublic voidrun() {

Canvas canvas=holder.lockCanvas();

canvas.save();

canvas.scale(ZOOM, ZOOM);

movie.draw(canvas,0, 0);

canvas.restore();

holder.unlockCanvasAndPost(canvas);

movie.setTime((int) (System.currentTimeMillis()%movie.duration()));

handler.removeCallbacks(runnable);

handler.postDelayed(runnable,30);

}

};privateSurfaceHolder holder;publicGifSurface(Context context, AttributeSet attrs) {super(context, attrs);

holder=getHolder();

holder.addCallback(this);

}

@Overrideprotected void onMeasure(int widthMeasureSpec, intheightMeasureSpec) {try{

InputStream is= getContext().getAssets().open("122856549320150205220255.gif");

movie=Movie.decodeStream(is);int width =movie.width();int height =movie.height();

setMeasuredDimension(width*ZOOM, height*ZOOM);

handler.post(runnable);

}catch(IOException e) {

e.printStackTrace();

}

}

@Overridepublic voidsurfaceCreated(SurfaceHolder holder) {

}

@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, intwidth,intheight) {

}

@Overridepublic voidsurfaceDestroyed(SurfaceHolder holder) {

handler.removeCallbacks(runnable);

}private void setZoom(intzoom) {this.ZOOM =zoom;

}public voidsetPath(String path) {this.path =path;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值