Android 图片相关处理库ImageLoader、Picasso、PhotoView、GifView

本文探讨了Android图像处理中的关键问题,如OOM、缓存和多线程加载,并介绍了四个库:ImageLoader、Picasso、PhotoView和GifView。ImageLoader和Picasso提供异步加载和缓存解决方案,但缺乏某些压缩功能。Picasso支持链式调用和图形转换,而PhotoView专注于图片查看和手势缩放。GifView则专门用于显示GIF图像。
摘要由CSDN通过智能技术生成
Universal-ImageLoader:


在Android图片处理中需要考虑的问题很多,例如OOM、图片缓存和网络图片加载、多线程问题及图片压缩处理等复杂的问题,ImageLoader和Picasso为我们解决了这些问题。

优点:

  • 支持本地图片和网络图片的多线程异步加载和缓存处理;
  • 个性化的配置自己项目的ImageLoader;
  • 图片加载过程的监听回调;
  • 自动对加载的图片针对当前剩余内存进行裁剪优化,防止OOM;
  • 较好的控制图片的加载过程,例如暂停图片加载,重新开始加载图片;

缺点:

  • 没有对本地文件压缩处理的相关API方法以及默认都是Src模式设置图片,没有针对Background属性开放API。

开源库universal-image-loader-1.9.3.jar,简单使用代码如下: 

 1 package com.zhang.imageloaderdemo;
 2 
 3 import android.app.Application;
 4 import android.graphics.Bitmap;
 5 import android.os.Environment;
 6 
 7 import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
 8 import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
 9 import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache;
10 import com.nostra13.universalimageloader.core.DisplayImageOptions;
11 import com.nostra13.universalimageloader.core.ImageLoader;
12 import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
13 import com.nostra13.universalimageloader.core.assist.ImageScaleType;
14 import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
15 import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
16 import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
17 import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
18 import com.nostra13.universalimageloader.core.download.ImageDownloader;
19 
20 import java.io.File;
21 import java.io.IOException;
22 import java.io.InputStream;
23 
24 /**
25  * Created by Mr.Z on 2016/9/25 0025.
26  */
27 public class MyApplication extends Application {
28 
29     @Override
30     public void onCreate() {
31         super.onCreate();
32 
33         ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this)
34                 .memoryCacheExtraOptions(480, 800)//max width, max height,即保存的每个缓存文件的最大长宽
35                 .discCacheExtraOptions(480, 800, null)//设置缓存的详细信息,最好不要设置这个
36                 .threadPoolSize(3)//线程池内加载的数量
37                 .threadPriority(Thread.NORM_PRIORITY - 2)
38                 .denyCacheImageMultipleSizesInMemory()
39                 .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024))//你可以通过自己的内存缓存实现
40                 .memoryCacheSize(2 * 1024 * 1024)
41                 .diskCacheSize(50 * 1024 * 1024)
42                 .discCacheFileNameGenerator(new Md5FileNameGenerator())//将保存的时候的URI名称用MD5 加密
43                 .tasksProcessingOrder(QueueProcessingType.FIFO)
44                 .discCacheFileCount(100)//缓存的文件数量
45                 .discCache(new UnlimitedDiscCache(new File(Environment.getExternalStorageDirectory() + "/imageLoader/imgCache")))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值