发布网友 发布时间:2022-05-09 21:11
共1个回答
热心网友 时间:2023-10-20 02:00
ImageLoader类包含所操作单例获取单实例需要调用getInstance()使用ImageLoader显示图片前需要初始化配置-ImageLoaderConfiguration使用init(…)使用明确根据需要使用同形式displayImage(…) 总ImageLoader简单用所示(使用默认配置): ImageView imageView = ... // view, where the image will be displayed String imageUrl = ... // image URL (e.g. "中国//site中国/image.png", "file:///mnt/sdcard/img/image.jpg") ImageLoader imageLoader = ImageLoader.getInstance(); imageLoader.init(ImageLoaderConfiguration .createDefault(context)); imageLoader.displayImage(imageUrl, imageView); 现让我看看完整用 像已经知道我首先需要用configuration象初始化ImageLoaderImageLoader单例所需要App启候初始化我建议重载Application.onCreate()做件事于已经初始化ImageLoader重新初始化程序任何影响 接我创建configurationImageLoaderConfiguration类象我使用Builder创建 File cacheDir = StorageUtils.getCacheDirectory(context, "UniversalImageLoader/Cache"); ImageLoaderConfiguration config = new ImageLoaderConfiguration .Builder(getApplicationContext()) .maxImageWidthForMemoryCache(800) .maxImageHeightForMemoryCache(480) .httpConnectTimeout(5000) .httpReadTimeout(20000) .threadPoolSize(5) .threadPriority(Thread.MIN_PRIORITY + 3) .denyCacheImageMultipleSizesInMemory() .memoryCache(new UsingFreqLimitedCache(2000000)) // You can pass your own memory cache implementation .discCache(new UnlimitedDiscCache(cacheDir)) // You can pass your own disc cache implementation .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) .build(); 面让我看看每选项 • maxImageWidthForMemoryCache() maxImageHeightForMemoryCache()用于图片图片解析Bitmap象储存整图片根据ImageView参数值(要加载图片)减少图片maxWidthmaxHeight(第阶段),layout_width layout_height(第二阶段)定义些参数(值fill_parentwrap_content视确定),尺寸设定根据maxImageWidthForMemoryCache()maxImageHeightForMemoryCache()设置定原始图像缩2倍(适合用fast decoding),直宽度或高度变于指定值; o默认值 - 设备屏幕 • httpReadTimeout()设置图片中国络加载超间(毫秒单位) o 默认值- 30秒 • threadPoolSize() 设置线程池. 每图片加载显示任务都单独线程进行些线程图片中国络载候进入线程池池决定能同运行线程数线程池能显著拖慢UI响应速度例列表滚变慢. o 默认值- 5 • threadPriority()设置运行任务所线程系统优先级(110); o默认值- 4 • 调用denyCacheImageMultipleSizesInMemory()强制UIL内存能存储内容相同同图像由于完整图片存储磁盘缓存面图片加载进入内存缩ImageView(图片要显示尺寸)某些情况,相同图像第显示View,需要View显示同,两同相同内容图片存储内存默认操作denyCacheImageMultipleSizesInMemory()指令确保删除前加载图像缓存内存 • 使用memoryCache(),指定内存缓存实现使用现解决案(都实现limited size-cache,超缓存,通定算删除象): o FIFOLimitedCache (根据先进先原则删除余象) o LargestLimitedCache (空间占用象删除) o UsingAgeLimitedCache (早添加象删除) o UsingFreqLimitedCache (少用象删除) 或者,实现通实现接口MemoryCacheAware 实现自缓存; o 默认值 - 使用2 MB内存*UsingFreqLimitedCache memoryCacheSize() 设置内存缓存占用空间. 种情况默认缓存策略 - UsingFreqLimitedCache. o 默认值 - 2 MB • Using discCache(), 定义自磁盘缓存. 现解决案 (文件跟特定URL匹配文件名些URL哈希值): o UnlimitedDiscCache (通策略, 缓存没*) o FileCountLimitedDiscCache (限定缓存) o TotalSizeLimitedDiscCache (限定文件数缓存策略) 另外,通实现DiscCacheAware接口定义自缓存 o 默认值 - UnlimitedDiscCache • 使用defaultDisplayImageOptions(),设置image显示选项,自定义选项没传递给displayImage(),用于displayimage(…)每调用面,我详细讨论些选项 我构建configuration象或信任发员(比我)使用默认configuration: ImageLoaderConfiguration config = ImageLoaderConfiguration.createDefault(context); ,configuration创建现,ImageLoader通初始化: ImageLoader.getInstance().init(config)