Android-Universal-Image-Loader-master

来源:互联网 发布:软件产品包装推广 编辑:程序博客网 时间:2024/04/24 00:24

Android 万能的一个Image图像加载器,支持缓存,非常棒...

Github:https://github.com/nostra13/Android-Universal-Image-Loader


1.全局(Application)初始化:

/** * 初始化全局  ImageLoader * @param context */public  void initImageLoader( ) {//Sd卡路径File cacheDir = StorageUtils.getOwnCacheDirectory(getApplicationContext(), "AppImage/");  ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext()).threadPriority(Thread.NORM_PRIORITY - 2).denyCacheImageMultipleSizesInMemory().diskCacheFileNameGenerator(new Md5FileNameGenerator())//加密方式.tasksProcessingOrder(QueueProcessingType.LIFO).diskCache(new UnlimitedDiscCache(cacheDir))//自定义缓存路径 //.writeDebugLogs() //打开log日志.build();//初始化ImageLoader.getInstance().init(config);}




2. DisplayImageOptions

显示配置、可以加载图片时候配置,也可以在 

(1)中Application全局配置:.defaultDisplayImageOptions(defaultDisplayImageOptions)

具体需求,具体定义...

/** * 显示配置信息 options * @return */public static DisplayImageOptions initOptions() {DisplayImageOptionsoptions = new DisplayImageOptions.Builder().showImageOnLoading(R.drawable.ic_stub)////在ImageView加载过程中显示图片.showImageForEmptyUri(R.drawable.ic_empty)//image连接地址为空时.showImageOnFail(R.drawable.ic_error)//加载错误.cacheInMemory(true) //加载图片时会在内存中加载缓存.cacheOnDisk(true)    //加载图片时会在磁盘中加载缓存.considerExifParams(true)////是否考虑JPEG图像EXIF参数(旋转,翻转).bitmapConfig(Bitmap.Config.RGB_565)//565比较省内存.displayer(new SimpleBitmapDisplayer()) // 开启动画监听default.build();return options;}

配置信息有很多,可以参考官网最新版本,

这里用到的Jar + 源码 : Android-Universal-Image-Loader-master



3.加载图片方式

需要注意:

/** * 在第四参数 有俩种方式: *  1. new SimpleImageLoadingListener  *  2. new ImageLoadingListener  *  区别:前者简单方式成功后自动赋值Bitmap,后者需要自己手动处理 *  * */imageLoader.displayImage("url", "imageView","显示配置..DisplayImageOptions ", new SimpleImageLoadingListener() {@Overridepublic void onLoadingStarted(String imageUri, View view) {// 加载开始}@Overridepublic void onLoadingFailed(String imageUri, View view,FailReason failReason) {// 加载失败}@Overridepublic void onLoadingComplete(String imageUri, View view,Bitmap loadedImage) {// 加载成功}@Overridepublic void onLoadingCancelled(String imageUri, View view) {super.onLoadingCancelled(imageUri, view);// 加载取消}}, new ImageLoadingProgressListener() {@Overridepublic void onProgressUpdate(String imageUri, View view,int current, int total) {/** * 进度回调,显示%  * 如果要打印需要开启配置 .displayer(new SimpleBitmapDisplayer())  // 开启动画监听default * */Log.i(imageUri, "current: " + current + "   total:"+ total+ " 进度:"+Math.round(100.0f * current / total));}});/** * new ImageLoadingListener 情况下 * public void onLoadingComplete(String imageUri, View view, BitmaploadedImage) {//加载成功 if(loadedImage != null){ImageView imageView=(ImageView)view; imageView.setImageBitmap(loadedImage); }} */


其他备注:

加载不同URL 地址:

String imageUri = "http://site.com/image.png"; // from Web  String imageUri = "file:///mnt/sdcard/image.png"; // from SD card  String imageUri = "content://media/external/audio/albumart/13"; // from content provider  String imageUri = "assets://image.png"; // from assets  String imageUri = "drawable://" + R.drawable.image; // from drawables (only images, non-9patch)  




0 0
原创粉丝点击