ImageLoader的工具類


public class ImageLoaderUtil {


    //初使化
    public static void initImageLoader(Context context){
        //自定義磁盤緩存路徑  系統默認的緩存路徑 sd...<package>..cache  當app被卸載時,此路徑下的緩存圖片一併被刪除
        //File cacheDir=getExternalCacheDir();
        File cacheDir= new File(Environment.getExternalStorageDirectory().getPath()+"/Pictures");//自定義 sd卡的緩存路徑


        //第一步:對ImageLoader進行初使化
        ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(context)
                .memoryCacheExtraOptions(320, 450) // default = device screen dimensions 內存緩存文件的最大長寬
                .diskCacheExtraOptions(480, 800, null)  // 本地緩存的詳細信息(緩存的最大長寬),最好不要設置這個
                .threadPriority(Thread.NORM_PRIORITY - 2) // default 設置當前線程的優先級
                .tasksProcessingOrder(QueueProcessingType.FIFO) // default
                .denyCacheImageMultipleSizesInMemory()
                .memoryCache(new LruMemoryCache(10 * 1024 * 1024)) //可以通過自己的內存緩存實現
                .memoryCacheSize(2 * 1024 * 1024)  // 內存緩存的最大值
                .memoryCacheSizePercentage(13) // default


                .diskCache(new UnlimitedDiscCache(cacheDir)) // 磁盤緩存 --default 可以自定義緩存路徑


                .diskCacheSize(20 * 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(configuration);
    }


    /**
     * 得到圖片的顯示設置類對象
     * @param context
     * @return
     */
    public  static  DisplayImageOptions getImageOption(Context context){
        DisplayImageOptions options=new DisplayImageOptions.Builder()
                .cacheInMemory(true)//使用內存緩存
                .cacheOnDisk(true)//使用磁盤緩存


                .showImageOnLoading(R.mipmap.ic_launcher)//設置正在下載的圖片
                .showImageForEmptyUri(R.mipmap.ic_launcher)//url爲空或請求的資源不存在時
                .showImageOnFail(R.mipmap.ic_launcher)//下載失敗時顯示的圖片


                .bitmapConfig(Bitmap.Config.RGB_565)//設置圖片色彩模式
                .imageScaleType(ImageScaleType.EXACTLY)//設置圖片的縮放模式===imageView,,ScaleType
                .displayer(new RoundedBitmapDisplayer(50))//設置圖片圓角顯示  弧度
                .build();


        return  options;
    }
}

需要寫一個Application類來實現初始化,在onCreate方法中來調用initConfig方法。


最後只需要在恰當的地方加上ImageLoader的第三步即可。

//加載網絡的圖片list.get(position%list.size())
ImageLoader.getInstance().displayImage(list.get(position%list.size()),imageView, ImageloaderUtil.getImageOptions());


發佈了39 篇原創文章 · 獲贊 5 · 訪問量 8544
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章