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));}@Overridepublic 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

更多相关文章

  1. Andriod界面设计适配和Android(安卓)Studio中的资源
  2. Android(安卓)资源,国际化,自适应
  3. Android九宫格图片(9.png)的讲解与制作
  4. IOS的专利?Android也能流畅实现毛玻璃效果效果
  5. android开发 - 圆角和边框
  6. Android(安卓)热敏打印机打印二维码
  7. Android之应用资源的调用
  8. Android(安卓)WebView 远程网页 加载本地资源js/html/css
  9. 《android framework常用api源码分析》之apk打包过程解析

随机推荐

  1. Android高版本不兼容低版本gradle问题
  2. Android(安卓)利用addView 让Activity 动
  3. android中gps的打开关闭
  4. 安卓AS打包报错org.gradle.process.inter
  5. Android加载Gif动画实现代码
  6. VirtualBox下使用Ubuntu 虚拟机Android
  7. Android Studio error: Unable to start
  8. Android(安卓)Intent初步试用
  9. Android中把assets目录下所有图片转换成b
  10. android 获取联系人和短消息信息