使用ImageLoader 首先在Application啓動裏面配置(也可以局部配置)
//注意點:必須在配置文件<application>裏面配置name ;還有加權限 Internet(連網權限) WRITE_EXTERNAL_STORAGE(可寫的外部存儲) 緩存本地
DisplayImageOptions options=new DisplayImageOptions.Builder()
.showImageOnLoading();//加載時候圖片
.showImageForEmptyUri();//uri爲空的或錯誤信息
.showImageOnFail();//圖片加載 解碼過程錯誤的圖片 沒網的時候~
.delayBeforeLoading(下載前延遲(int))
.resetViewBeforeLoading(true)//設置圖片在下載前是否重置,復位
.displayer( new RoundedBitmapDisplayer(360) )//圓角圖***
.cacheOnDisk(true)//緩存在外存(本地文件)
.cacheInMemory(true)//緩存在內存
.considerExifParams(true)//啓用EXIF和JPEG圖片格式(旋轉,翻轉)
.build();
ImageLoaderConfiguration config=new ImageLoaderConfiguration.Builder()
.defaultDisplayImageOptions(options)//同步 把options設置給config
.threadPoolSize(3)//線程數量
.diskCache( new UnlimitedDiskCache("路徑") )//自定義本地路徑*****(getCacheDir())
.threadPriority(Thread.NORM_PRIORITY-2)//線程池優先級
.diskCacheFileNameGenerator(new Md5FileNameGenerator())//磁盤緩存的,圖片名稱進行md5加密
.discCacheFileCount(100) //緩存的文件數量
.discCacheSize(50 * 1024 * 1024)
.memoryCacheExtraOptions(480, 800) // max width, max height,即保存的每個緩存文件的最大長寬
.build();
//最後初始化imageLoader
ImageLoader.getInstance().init(config);
//完成配置
//開始使用
ImageLoader.getInstance().displayImage(url,ImageView);
ImageLoader.getInstance().displayImage(url,ImageView new ImageLoadingListener(){});//回調方法
如果你覺得傳入ImageLoaderListener太複雜了,我們可以使用SimpleImageLoadingListener類,該類提供了ImageLoaderListener接口方法的空實現,使用的是缺省適配器模式
- String imageUrl = "https://lh6.googleusercontent.com/-55osAWw3x0Q/URquUtcFr5I/AAAAAAAAAbs/rWlj1RUKrYI/s1024/A%252520Photographer.jpg";
- ImageLoader.getInstance().loadImage(imageUrl, new SimpleImageLoadingListener(){
- @Override
- public void onLoadingComplete(String imageUri, View view,
- Bitmap loadedImage) {
- super.onLoadingComplete(imageUri, view, loadedImage);
- mImageView.setImageBitmap(loadedImage);
- }
- });
- String imageUrl = "https://lh6.googleusercontent.com/-55osAWw3x0Q/URquUtcFr5I/AAAAAAAAAbs/rWlj1RUKrYI/s1024/A%252520Photographer.jpg";
- ImageSize mImageSize = new ImageSize(100, 100); //****** size
- ImageLoader.getInstance().loadImage(imageUrl, mImageSize, new SimpleImageLoadingListener(){
- @Override
- public void onLoadingComplete(String imageUri, View view,
- Bitmap loadedImage) {
- super.onLoadingComplete(imageUri, view, loadedImage);
- mImageView.setImageBitmap(loadedImage);
- }
- });