ImageLoaderSample ImageView异步加载图片开源项目

我要开发同款
匿名用户2014年02月28日
84阅读

技术信息

开源地址
https://github.com/wangjiegulu/ImageLoaderSample
授权协议
GPL

作品详情

这个可以实现ImageView异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画。

解决了:

1.listview加载oom问题

2.listview加载时卡顿的现象

3.listview加载时item中图片重复错位等情况

可以配置:

1.设置加载图片的最大尺寸

2.设置默认图片的显示

3.设置图片位图模式

4.设置内存缓存的最大值。

5.文件缓存保存的目录

  这个框架基本的代码是很久以前不知道哪里弄的,零零碎碎的,现在已经优化了很多,所以现在上传到github上共享。

  讲讲使用方式吧:

 

首先使用前下载源码或者jar包(见github:https://github.com/wagjiegulu/ImageLoaderSample)

然后进行图片加载器(ImageLoader)的配置和初始化,推荐的方法如下:

新建MyApplicatio类,继承Applicatio,在oCreate中增加如下代码:

 

/** * Created with ItelliJ IDEA. * Author: wagjie  email:tiatia.chia.2@gmail.com * Date: 14-2-27 * Time: 上午11:25 */public class MyApplicatio exteds Applicatio{    @Override    public void oCreate() {        super.oCreate();        ImageLoader.iit(getApplicatioCotext(),                ew CacheCofig()                    .setDefRequiredSize(600) // 设置默认的加载图片尺寸(表示宽高任一不超过该值,默认是70px)                    .setDefaultResId(R.drawable.ic_laucher) // 设置显示的默认图片(默认是0,即空白图片)                    .setBitmapCofig(Bitmap.Cofig.ARGB_8888) // 设置图片位图模式(默认是Bitmap.CacheCofig.ARGB_8888)                    .setMemoryCachelimit(Rutime.getRutime().maxMemory() / 3) // 设置图片内存缓存大小(默认是Rutime.getRutime().maxMemory() / 4)//                  .setFileCachePath(Eviromet.getExteralStorageDirectory().toStrig() + "/mycache") // 设置文件缓存保存目录        );    }    ……}

然后再AdroidMaifest.xml中添加:

 

 

......

到此,配置已经全部完成:接下来,使用ImageLoader来加载图片:

holder.progress.setText("0%");    holder.progress.setVisibility(View.VISIBLE);    fial ViewHolder vhr = holder;    ImageLoader.getIstaces().displayImage(list.get(positio), holder.image, ew ImageLoader.OImageLoaderListeer() {        @Override        public void oProgressImageLoader(ImageView imageView, it curretSize, it totalSize) {            vhr.progress.setText(curretSize * 100 / totalSize + "%");        }        @Override        public void oFiishedImageLoader(ImageView imageView, Bitmap bitmap) {            vhr.progress.setVisibility(View.GONE);        }    });    或者:    ImageLoader.getIstaces().displayImage(url, imageIv);    或者    ImageLoader.getIstaces().displayImage(url, imageIv, 100);

备注:例子中,用到了一部分注解(与ImageLoader功能无关,但是可以简化代码的编写)可以点下面连接进入:github:https://github.com/wagjiegulu/adroidIject博客:https://www.cblogs.com/tiatiabycoa/p/3459139.htmlhttps://www.cblogs.com/tiatiabycoa/p/3540427.html

 

功能介绍

这个可以实现ImageView异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画。 解决了: 1. listview加载oom问题 2. listview加载时卡顿的...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论