Android播放Gif动态图片的几种方法

xiaoxiao2021-02-28  89

下面介绍三种方式: 一、自定义GifView组件 简介:

这个自定义的gifview组件核心代码就是读取Gif数据,创建Movie实例,绘制每一帧图片来达到Gif动态效果。这种方式比较直观方便,代码量也少,不过经测试部分Gif图片不能自适应大小,播放速度比实际播放速度快,如果要显示的gif过大,还会出现BOOM的问题。

private void setViewAttributes(Context context, AttributeSet attrs, int defStyle) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { setLayerType(View.LAYER_TYPE_SOFTWARE, null); } final TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MyGifView, defStyle, R.style.Widget_GifView); mMovieResourceId = array.getResourceId(R.styleable.MyGifView_gif, -1); mPaused = array.getBoolean(R.styleable.MyGifView_paused, false); array.recycle(); if (mMovieResourceId != -1) { /** * 核心代码,从描述文件中读出gif的值,创建出Movie实例 */ mMovie = Movie.decodeStream(getResources().openRawResource( mMovieResourceId)); } }

可以参考地址:http://blog.csdn.NET/y_fc75/article/details/46494929

二、使用GifView的开源jar包

作者:ant:cy:liao 主页:http://code.google.com/p/gifview/ 简介:功能很强大的Gif库,能设置加载方式,可以先加载后显示或者只显示第一帧,播放速度比实际播放速度快,如果要显示的gif太大,会出现BOOM的问题。 使用方法: 1)将GifView的jar包导入到项目中 2)在XML配置,用法与imageview一致 3)代码中配置

gif3 = (GifView) findViewById(R.id.gif3); // 设置Gif图片源 gif3.setGifImage(R.drawable.gif2); // 添加监听器 gif3.setOnClickListener(this); // 设置显示的大小,拉伸或者压缩 gif3.setShowDimension(300, 300); // 设置加载方式:先加载后显示、边加载边显示、只显示第一帧再显示 gif3.setGifImageType(GifImageType.COVER);

三、使用Android-gif-drawable开源库

简介:android-gif-drawable是github上的优秀开源项目,源码和demo使用的是studio开发,所以想用eclipse打开还要花点功夫。这个底层解析Gif使用的是C语言。它的有点久是加载大的图片时不会出现内存溢出的情况。保持Gif的动画效果,不会发生过快的情况。 Android-gif-drawable的源代码下载地址:https://github.com/koral--/android-gif-drawable  转发自:http://blog.csdn.net/zhoufuqiang30/article/details/43730437

可以参考demo:http://download.csdn.Net/detail/zhoufuqiang30/8477033

总结,可优先选择使用Android-gif-drawable开源库

转载请注明原文地址: https://www.6miu.com/read-48372.html

最新回复(0)