Android加载Gif图片的一般方法:Movie实现
2016-10-14 19:12
549 查看
版权声明:本文为Zhang Phil原创文章,欢迎转载!转载请注明出处:http://blog.csdn.net/zhangphil
Android加载Gif图片的一般方法:Movie实现
Android的ImageView无法直接加载Gif图片,如果需要在自己的代码中加载一个gif图片(这很常见,比如下载过程中的loading以示正在下载的转动的圆球),则无法直接用ImageView。鉴于此,Android社区开发者为解决此问题贡献了很多解决方案,其中一种比较简易且比较流行的做法是通过Android Movie的方式把一个gif图片当作一个原始的资源加载到Movie,然后Movie将其解析为Movie帧进行加载。具体代码如下:
使用时候,直接将其作为一个Android普通的view使用即可,但需要在构造函数时候写进一个拟打算加载的gif资源文件id。比如drawable目录下面的animation.gif文件,其id为:R.drawable.animation
附录文章:
《基于开源框架Glide加载Gif资源图到Android ImageView中》链接地址:http://blog.csdn.net/zhangphil/article/details/45561983
Android加载Gif图片的一般方法:Movie实现
Android的ImageView无法直接加载Gif图片,如果需要在自己的代码中加载一个gif图片(这很常见,比如下载过程中的loading以示正在下载的转动的圆球),则无法直接用ImageView。鉴于此,Android社区开发者为解决此问题贡献了很多解决方案,其中一种比较简易且比较流行的做法是通过Android Movie的方式把一个gif图片当作一个原始的资源加载到Movie,然后Movie将其解析为Movie帧进行加载。具体代码如下:
import android.content.Context; import android.graphics.Canvas; import android.graphics.Movie; import android.util.AttributeSet; import android.view.View; public class ZhangPhilGifView extends View { private Movie mMovie; private long mMovieStart = 0; public ZhangPhilGifView(Context context, AttributeSet attrs) { super(context, attrs); mMovie = Movie.decodeStream(getResources().openRawResource(R.drawable.animation)); } @Override public void onDraw(Canvas canvas) { long now = android.os.SystemClock.uptimeMillis(); if (mMovieStart == 0) { mMovieStart = now; } if (mMovie != null) { int dur = mMovie.duration(); if (dur == 0) { dur = 1000; } int relTime = (int) ((now - mMovieStart) % dur); mMovie.setTime(relTime); mMovie.draw(canvas, 0, 0); invalidate(); } } }
使用时候,直接将其作为一个Android普通的view使用即可,但需要在构造函数时候写进一个拟打算加载的gif资源文件id。比如drawable目录下面的animation.gif文件,其id为:R.drawable.animation
附录文章:
《基于开源框架Glide加载Gif资源图到Android ImageView中》链接地址:http://blog.csdn.net/zhangphil/article/details/45561983
相关文章推荐
- Android加载Gif图片的一般方法:Movie实现
- Android加载Gif图片的一般方法:Movie实现
- 关于android加载Gif图片的方法
- Android实现ListView异步加载图片的方法
- Android开发实现webview中img标签加载本地图片的方法
- Android 使用Picasso加载网络图片等比例缩放的实现方法
- 在Android的应用中实现网络图片异步加载的方法
- Android编程实现压缩图片并加载显示的方法
- android异步加载图片并缓存到本地实现方法
- ListView异步加载图片是非常实用的方法,凡是是要通过网络获取图片资源一般使用这种方法比较好,用户体验好,下面就说实现方法,先贴上主方法的代码:
- Android 实现加载大图片的方法
- android异步加载图片并缓存到本地实现方法
- Android实现Listview异步加载网络图片并动态更新的方法
- Android实现ListView异步加载图片的方法
- android异步加载图片并缓存到本地实现方法
- Android开发实现加载网络图片并下载至本地SdCard的方法
- Android 使用Glide加载网络图片等比例缩放的实现方法
- android 加载网络图片实现圆角方法
- ANDROID图片加载时出现OOM的一般处理方法