Android 中网络图片加载(包括本地图片的加载) 框架 universal image loader 的简单使用
2016-08-08 23:52
851 查看
1,介绍
---- Android-Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示。所以,如果你的程序里需要这个功能的话,那么不妨试试它。因为已经封装好了一些类和方法。我们可以直接拿来用了
2,universal-image-loader的使用步骤:
---- 1, 导入jar包,添加权限 , 访问网络 和 写入的权限---- 2, 对ImageLoader进行配置 ,实际就是实例化个 ImageLoaderConfiguration 对象
---- 3, 初始化 ImageLoader 的配置,就是给 ImageLoader 设置好配置属性
---- 4, 实例化 ImageLoader 对象
---- 5, 进行显示的图片的各种格式 DisplayImageOptions 的设置 , 就是实例化个 DisplayImageOptions 对象
---- 6, 调用 displayImage(String uri, ImageView imageView) 按默认的图片显示的配置属性进行图片加载
调用 displayImage(String uri, ImageView imageView, DisplayImageOptions options) 按自定义的图片显示的配置属性进行加载
调用带事件监听的图片加载 loadImage(String uri, ImageSize targetImageSize, DisplayImageOptions options, ImageLoadingListener listener, ImageLoadingProgressListener progressListener)
3, Demo示例
public class MainActivity extends Activity { private ImageLoader imageLoader; DisplayImageOptions options; /** * 使用 universal image loader 来加载图片 * * 使用的步骤 : * 1, 导入jar包,添加权限 , 访问网络 和 写入权限 * 2, 对ImageLoader进行配置 ,实际就是实例化个 ImageLoaderConfiguration 对象 * 3, 初始化 ImageLoader 的配置,就是给 ImageLoader 设置好配置属性 * 4, 实例化 ImageLoader 对象 * 5, 进行显示的图片的各种格式 DisplayImageOptions 的设置 , 就是实例化个 DisplayImageOptions 对象 * 6, 调用 displayImage(String uri, ImageView imageView) 按默认的图片显示的配置属性进行图片加载 * 调用 displayImage(String uri, ImageView imageView, DisplayImageOptions options) 按自定义的图片显示的配置属性进行加载 * 调用带事件监听的图片加载 loadImage(String uri, ImageSize targetImageSize, DisplayImageOptions options, ImageLoadingListener listener, ImageLoadingProgressListener progressListener) * */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //3,初始化ImageLoader的配置属性 ImageLoader.getInstance().init(getImageLoaderConfiguration()); //4,实例化 ImageLoader 对象 imageLoader = ImageLoader.getInstance(); //5,实例化显示图片的配置信息,进行显示的图片的各种格式 DisplayImageOptions 的设置 options = getOptions(); } public void onClick(View view) { //6,开始加载图片 imageLoader.displayImage("http://avatar.csdn.net/B/E/B/1_wow875620051.jpg", (ImageView)findViewById(R.id.imageView), options); } //5,进行显示的图片的各种格式 DisplayImageOptions 的设置 , 就是实例化个 DisplayImageOptions 对象 public DisplayImageOptions getOptions() { DisplayImageOptions options = new DisplayImageOptions.Builder() .showImageOnLoading(R.drawable.ic_launcher) //设置图片在下载期间显示的图片 .showImageForEmptyUri(R.drawable.ic_launcher)//设置图片Uri为空或是错误的时候显示的图片 .showImageOnFail(R.drawable.ic_launcher) //设置图片加载/解码过程中错误时候显示的图片 .cacheInMemory(true)//设置下载的图片是否缓存在内存中 .cacheOnDisc(true)//设置下载的图片是否缓存在SD卡中 .considerExifParams(true) //是否考虑JPEG图像EXIF参数(旋转,翻转) .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)//设置图片以如何的编码方式显示 //.delayBeforeLoading(int delayInMillis)//int delayInMillis为你设置的下载前的延迟时间 //设置图片加入缓存前,对bitmap进行设置 //.preProcessor(BitmapProcessor preProcessor) .resetViewBeforeLoading(true)//设置图片在下载前是否重置,复位 .displayer(new RoundedBitmapDisplayer(20))//是否设置为圆角,弧度为多少 .displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间 .build();//构建完成 return options; } // 2 ,对ImageLoader进行配置 ,实际就是实例化个 ImageLoaderConfiguration 对象 public ImageLoaderConfiguration getImageLoaderConfiguration() { File cacheDir = StorageUtils.getOwnCacheDirectory(getApplicationContext(), "imageloader/Cache"); ImageLoaderConfiguration imageLoaderConfig = new ImageLoaderConfiguration.Builder(this) .memoryCacheExtraOptions(480, 800) // max width, max height,即保存的每个缓存文件的最大长宽 // .discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75, null) // Can slow ImageLoader, use it carefully (Better don't use it)/设置缓存的详细信息,最好不要设置这个 .threadPoolSize(3)//线程池内加载的数量 .threadPriority(Thread.NORM_PRIORITY - 2) .denyCacheImageMultipleSizesInMemory() .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // You can pass your own memory cache implementation/你可以通过自己的内存缓存实现 .memoryCacheSize(2 * 1024 * 1024) .discCacheSize(50 * 1024 * 1024) // .discCacheFileNameGenerator(new Md5FileNameGenerator())//将保存的时候的URI名称用MD5 加密 .tasksProcessingOrder(QueueProcessingType.LIFO) // .discCacheFileCount(100) //缓存的文件数量 .discCache(new UnlimitedDiskCache(cacheDir))//自定义缓存路径 .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) .imageDownloader(new BaseImageDownloader(this, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间 .writeDebugLogs() // Remove for release app .build();//开始构建 return imageLoaderConfig; } }
讲解 图片加载 universal image loader 框架使用的文章已经很多了,但我感觉这位作者讲的不错:
Universal - image - loader 的详细使用介绍:
http://www.cnblogs.com/ruiati/p/3930732.html
相关文章推荐
- android网络图片加载处理库Picasso和universalimageloader使用简单案例
- Android开源框架--AndroidUniversalImageLoader网络图片加载
- 简单实现自己的类似UniversalImageLoader网络图片加载缓存框架
- 图片加载框架Android-Universal-Image-Loader使用及解析
- [转]Android_开源框架_AndroidUniversalImageLoader网络图片加载
- Android_开源框架_AndroidUniversalImageLoader网络图片加载
- Android_开源框架_AndroidUniversalImageLoader网络图片加载
- Android图片框架对比Universal-Image-Loader,android-Volley,Picasso、Fresco和Glide五大Android开源组件加载网络图片的优缺点比较
- Android_开源框架_AndroidUniversalImageLoader网络图片加载
- Android_开源框架_AndroidUniversalImageLoader网络图片加载
- Android_开源框架_AndroidUniversalImageLoader网络图片加载
- Android_开源框架_AndroidUniversalImageLoader网络图片加载
- Android_开源框架_AndroidUniversalImageLoader网络图片加载
- Android_开源框架_AndroidUniversalImageLoader网络图片加载
- Universal-Image-Loader(UIL)图片加载框架使用简单介绍
- Android 使用图片异步加载框架Universal Image Loader的问题
- Android_开源框架_AndroidUniversalImageLoader网络图片加载
- Android第三方框架universal-image-loader[图片缓存加载]及其OOM问题处理【常用】,CardView使用[给列表中项+边框]
- 异步加载图片框架Android-Universal-Image-Loader的使用
- Android_开源框架_AndroidUniversalImageLoader网络图片加载