imageloader加载网络图片

一、简单介绍

 imageloader 即 Android-Universal-Image-Loader是一个开源的UI组件程序。开发人员使用它,可是很轻松的加载网络上的图片,它具体一下优点:

  • 支持多线程图片加载
  • 提供丰富的细节配置,比如线程池大小,HTPP请求项,内存和磁盘缓存,图片显示时的参数配置等等;
  • 提供双缓存
  • 支持加载过程的监听;
  • 提供图片的个性化显示配置接口;

二、使用实例

例如,最近在做webRTC的一个项目,服务器上创建房间后,需要将房间信息生成一个二维码,客户端需要将此二维码显示出来。服务器端生成二维码后,给我的客户端返回一个下载地址,如http://***.***.***.***/getQr?roomName=" + params.roomId + "&passwd=" + params.clientId,这是一个下载地址,并不是一个服务器上图片的地址。把这个地址放在浏览器中,立即可以显示一张图片,因为浏览器使用http请求把此下载地址的图片加载过来了。

那么对于android 客户端而言,此地址不是一张图片,当前不能直接使用imageview.setBackground(new BitmapDrawable(imageAddre)) 这个来直接显示此二维码。

所以,要想解决此问题,需要用来开源的Imageloader。


方案:使用ImageLoader加载网络图片

1、创建imageLoader对象

ImageLoader imageLoader = ImageLoader.getInstance();//注意,imageloader使用的是单例模式,


2、初始化

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext()).build();

imageLoader.init(config);

config可以自己配置:如:

  1. ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this)  
  2.     .memoryCacheExtraOptions(480, 800)          // default = device screen dimensions  
  3.     .discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75, null)  
  4.     .taskExecutor(...)  
  5.     .taskExecutorForCachedImages(...)  
  6.     .threadPoolSize(3)                          // default  
  7.     .threadPriority(Thread.NORM_PRIORITY - 1)   // default  
  8.     .tasksProcessingOrder(QueueProcessingType.FIFO) // default  
  9.     .denyCacheImageMultipleSizesInMemory()  
  10.     .memoryCache(new LruMemoryCache(2 * 1024 * 1024))  
  11.     .memoryCacheSize(2 * 1024 * 1024)  
  12.     .memoryCacheSizePercentage(13)              // default  
  13.     .discCache(new UnlimitedDiscCache(cacheDir))// default  
  14.     .discCacheSize(50 * 1024 * 1024)        // 缓冲大小  
  15.     .discCacheFileCount(100)                // 缓冲文件数目  
  16.     .discCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default  
  17.     .imageDownloader(new BaseImageDownloader(context)) // default  
  18.     .imageDecoder(new BaseImageDecoder()) // default  
  19.     .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default  
  20.     .writeDebugLogs()  
  21.     .build();

3、imageloader加载图片

                DisplayImageOptions options = new DisplayImageOptions.Builder()  
        .showStubImage(R.drawable.two_dimension_codel)          // image在加载过程中,显示的图片  
        .showImageForEmptyUri(R.drawable.two_dimension_codel)  // empty URI时显示的图片  
        .showImageOnFail(R.drawable.two_dimension_codel)       // 不是图片文件 显示图片  
        .resetViewBeforeLoading()  // default  
        .delayBeforeLoading(1000)  
        .cacheInMemory()           // default 不缓存至内存  
        .cacheOnDisc()             // default 不缓存至手机SDCard  
        .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2)// default  
        .bitmapConfig(Bitmap.Config.RGB_565)              // default  
        .displayer(new SimpleBitmapDisplayer()) // default 可以设置动画,比如圆角或者渐变  
        //.displayer(new RoundedBitmapDisplayer(200))
        .displayer(new FadeInBitmapDisplayer(500))//是否图片加载好后渐入的动画时间 
        .handler(new Handler())                             // default  
        .build();
        
        imageLoader.displayImage(imageStr,
imageview,options);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值