网络图片加载Image-Universal-Loader
来源:互联网 发布:软件测试方案模板 编辑:程序博客网 时间:2024/06/06 16:37
ImageLoader简介和使用方法
缓存sd卡要加入权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
1.功能概要 (1).使用多线程加载图片(2).灵活配置ImageLoader的基本参数,包括线程数、缓存方式、图片显示选项等;(3).图片异步加载缓存机制,包括内存缓存及SDCard缓存;(4).采用监听器监听图片加载过程及相应事件的处理;(5).配置加载的图片显示选项,比如图片的圆角处理及渐变动画。
2.简单实现
在使用ImageLoader的实例之前,你需要初始化该配置,否则会报初始化错误。一般我们直接写在application中初始化。public class MyApplication extends Application { @Override public void onCreate() { ImageLoaderConfiguration loaderConfiguration = new ImageLoaderConfiguration.Builder(this).build();// 获得实例 ImageLoader imageLoader = ImageLoader.getInstance();// 初始化 imageLoader.init(loaderConfiguration); }}
在初始化配置完成后,在清单中写入你自定义的application,并写入访问权限。<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.xlistview"> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <!-- 添加写外部存储权限,如果需要往sd卡上写图片的话 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application android:name=".Application.MyApplication"
/**代码中的使用 * 第一个参数,是图片的url * 第二个参数是imageView控件 */ImageLoader.getInstance().displayImage(data_list.get(position).getPic_url(), holder.img);
常用参数sd卡路径:String path = Environment.getExternalStorageDirectory().getPath() + "/Images"; File file = new File(path);ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this) .threadPoolSize(3) //设置开启线程池数 .memoryCacheSize(10*1024) //设置内存的缓存大小 .memoryCacheExtraOptions(480, 800) //内存缓存图片的最大宽高 .diskCacheSize(50 * 1024 * 1024)// 缓冲大小 .diskCache(new UnlimitedDiskCache(file))//缓存到sd卡中 .build(); //构建完成 //得到ImageLoader对像 ImageLoader imageLoader = ImageLoader.getInstance(); //进行初使化 imageLoader.init(configuration);
适配器页面 Display Options属性
DisplayImageOptions options = new DisplayImageOptions.Builder() // 正在加载时显示的占位图 .showImageOnLoading(R.drawable.ic_stub) // URL为空时显示的占位图 .showImageForEmptyUri(R.drawable.ic_empty) // 加载失败时显示的占位图 .showImageOnFail(R.drawable.ic_error) // 在加载前是否重置 view,默认为false .resetViewBeforeLoading(false) //设置在开始加载前的延迟时间,单位为毫秒,通过 Builder 构建的对象默认为 0 .delayBeforeLoading(1000) // 是否缓存在内存中,通过 Builder 构建的对象默认为 false .cacheInMemory(false) // 是否缓存在磁盘中,通过 Builder 构建的对象默认为 false。//设置下载的图片是否缓存在内存中 .cacheOnDisk(false) //缓存在内存之前的处理程序,默认为 null//设置下载的图片是否缓存在SD卡中 .preProcessor(null) //缓存在内存之后的处理程序,默认为 null。//设置下载的图片是否缓存在SD卡中 .postProcessor(null) //下载器需要的辅助信息。下载时传入ImageDownloader.getStream(String, Object)的对象,方便用户自己扩展,默认为 null。 .extraForDownloader(null) // 是否考虑图片的 EXIF 信息,通过 Builder 构建的对象默认为 false。 .considerExifParams(false) // 图片的缩放类型,通过 Builder 构建的对象默认为IN_SAMPLE_POWER_OF_2 .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // bitmap的质量,默认为ARGB_8888 .bitmapConfig(Bitmap.Config.ARGB_8888) //为 BitmapFactory.Options,用于BitmapFactory.decodeStream(imageStream, null, decodingOptions)得到图片尺寸等信息。 .decodingOptions(null) // 在ImageAware中显示 bitmap 对象的接口。可在实现中对 bitmap 做一些额外处理,比如加圆角、动画效果。 .displayer(new SimpleBitmapDisplayer()) // handler 对象,默认为 null .handler(new Handler()) .build();
//清除缓存按钮 public void clearCache(View view){ //清除缓存的方法 ImageLoader.getInstance().clearDiskCache();//清除磁盘缓存 ImageLoader.getInstance().clearMemoryCache();//清除内存缓存 Toast.makeText(this, "清除缓存成功", Toast.LENGTH_SHORT).show(); }
阅读全文
0 0
- universal-image-Loader网络图片加载框架
- Universal-Image-Loader加载网络图片
- 网络图片加载Image-Universal-Loader
- Android网络图片加载_Android-Universal-Image-Loader
- 使用Android-Universal-Image-Loader加载网络图片
- 异步加载网络图片之Universal-Image-Loader的使用
- Universal-Image-Loader网络图片加载处理框架
- 使用universal-image-loader-1.9.3.jar加载网络图片
- Android-Universal-Image-Loader 异步加载图片
- 使用Android-Universal-Image-Loader加载图片
- Universal-Image-Loader加载listView中图片
- Android-Universal-Image-Loader加载图片
- universal-image-loader图片异步加载
- Android-Universal-Image-Loader 图片加载库
- Universal-Image-Loader异步加载图片详解
- Universal Image Loader 学习笔记-图片加载
- 使用Universal-Image-Loader加载图片
- 使用Universal-Image-Loader框架加载图片
- 第一个Node程序
- 多线程 锁 synchronized 的使用
- 进度条BJ
- Bootstrap禁止点击空白处关闭模态框以及模态框的拖动
- Unable to parse template "Class" Error message: This template did not produce a Java class or an int
- 网络图片加载Image-Universal-Loader
- WCF如何将发布的svc中的wsdl的计算机名改成IP
- 48 个 JavaScript 代码片段,仅需 30 秒就可理解
- @RequestMapping 用法详解之地址映射(转)
- 20171213.4
- Genymotion的安装与使用(附百度云盘下载地址,全套都有,无需注册Genymotion即可使用)
- Android常见的图片处理的开源框架
- 百度地图-1.注册与密钥获取
- 简单学习Docker