ImageLoader(多线程异步加载和显示图片)
来源:互联网 发布:知在古文中的意思 编辑:程序博客网 时间:2024/05/21 22:47
首先 得添加依赖 右击App 找到 open Module Settings 选中当前的Module 找到 Dependencies 点击+号 搜索 nostra 要记得添加访问网络的权限 Intent
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
新建Class 命名BaseApplication 让它继承 Application 重写onCreate()方法 方法体中写
ImageLoaderUtil.init(this);这个时候回到配置文件中 在Application中添加属性 name , name中的内容就是.BaseApplication
新建Class 命名为 ImageLoaderUtil 创建两个静态方法 : public static void init(Context context){ 别忘记最后有一行代码初始化};
//一个带类型的方法 记得最后有返回值
public static DisplayOptions getDefaultOption(){};
////////////////////////////////////////////////////////////举例 参考:
public class ImageLoaderUtil { public static void init(Context context){ File cacheDir = StorageUtils.getCacheDirectory(context); //默认SD卡缓存文件夹路径 //可以新建一个自己的缓存文件路径 /** * 可以自己创建一个sd下面的文件夹作为硬盘缓存的路径 */ // File file = new File(Environment.getExternalStorageDirectory(),"image"); // if (! file.exists()){ // file.mkdirs(); // } ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context) // default = device screen dimensions 内存缓存文件的最大长宽///////////////////////////////////////////////////////////////////////////////////////////////////////////////////.memoryCacheExtraOptions(480, 800) // 本地缓存的详细信息(缓存的最大长宽),最好不要设置这个.diskCacheExtraOptions(480, 800, null) .threadPoolSize(3) // default 线程池内加载的数量.threadPriority(Thread.NORM_PRIORITY - 2) // default 设置当前线程的优先级
.tasksProcessingOrder(QueueProcessingType.FIFO) // default
.denyCacheImageMultipleSizesInMemory()
.memoryCache(new LruMemoryCache(2 * 1024 * 1024)) //可以通过自己的内存缓存实现
.memoryCacheSize(2 * 1024 * 1024) // 内存缓存的最大值
.memoryCacheSizePercentage(13) // default
.diskCacheSize(50 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值
.diskCacheFileCount(100) // 可以缓存的文件数量
// default为使用HASHCODE对UIL进行加密命名, 还可以用MD5(new Md5FileNameGenerator())加密
.diskCacheFileNameGenerator(new HashCodeFileNameGenerator())
.imageDownloader(new BaseImageDownloader(context)) // default
.defaultDisplayImageOptions(DisplayImageOptions.createSimple())
// default
.writeDebugLogs() // 打印debug log
.build(); //开始构建
//初始化
ImageLoader.getInstance().init(config); }
public static DisplayImageOptions displayImageOptions(){
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片
.showImageForEmptyUri(R.mipmap.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.mipmap.ic_launcher) // 设置图片加载或解码过程中发生错误显示的图片
.resetViewBeforeLoading(true) // default 设置图片在加载前是否重置、复位
.cacheInMemory(true) // default 设置下载的图片是否缓存在内存中
.cacheOnDisk(true) // default 设置下载的图片是否缓存在SD卡中
.considerExifParams(true) // default
.imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2)
// default 设置图片以如何的编码方式显示
.bitmapConfig(Bitmap.Config.RGB_565) // default 设置图片的解码类型
.displayer(new RoundedBitmapDisplayer(20))
// default 还可以设置圆角图片new RoundedBitmapDisplayer(20)
.build(); return options;///////////返回值 }}
一般会在适配器做显示图片的操作:
ImageLoader.getInstance().displayImage(uri, imageView, options);
//举例:这个地方 getImages是个集合 所以取集合中的第一个 的路径
ImageLoader.getInstance().displayImage(list.get(i).getImages().get(0), vh.image, ImageLoaderUtil.displayImageOptions());
- ImageLoader(多线程异步加载和显示图片)
- 图片异步加载ImageLoader
- ImageLoader异步加载图片
- ImageLoader 图片异步加载
- ImageLoader图片多线程加载
- imageloader异步加载网络图片
- ImageLoader实现图片异步加载
- ImageLoader图片异步加载详解
- ImageLoader加载显示图片解析
- 使用ImageLoader实现图片异步加载
- 使用ImageLoader实现图片异步加载
- 使用ImageLoader实现图片异步加载
- 使用ImageLoader实现图片异步加载
- 使用ImageLoader实现图片异步加载
- 使用ImageLoader实现图片异步加载
- 使用Imageloader异步加载网络图片
- 使用ImageLoader实现图片异步加载
- 异步加载图片框架ImageLoader的使用
- 寻找道路
- 税费计算
- 天数判断
- MXNet如何生成.lst文件和.rec文件
- [BZOJ]2707: [SDOI2012]走迷宫 期望+高斯消元
- ImageLoader(多线程异步加载和显示图片)
- tesseract源码解读0
- python:9:os模块与sys.argv
- 找7
- 欢迎使用CSDN-markdown编辑器
- [BZOJ3160]万径人踪灭 FFT+manacher
- 编译解释
- 数位之和
- 友元函数