標籤:
Android基於universal-image-loader-1.9.4.jar的圖片緩衝。
jar包可以去網上下載,其中封裝了網路擷取圖片及在手機開闢快取區域的方法,只需要做如下配置操作就可以使用。
它的作用方式是這樣的,如果手機串連網路,那麼該組件會從網路擷取圖片並將圖片寫入緩衝,如果沒有串連網路,那麼會從快取區域擷取已經載入的圖片並顯示出來。
一下是具體的配置和使用方式:
1:添加jar包,並添加依賴。
2:配置universal-image-loader,代碼:
import com.inext.test.volleytest.R;import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import com.nostra13.universalimageloader.core.assist.ImageScaleType;import com.nostra13.universalimageloader.core.download.BaseImageDownloader;/** * Created by Administrator on 2016/5/6. */public class ImgLoaderUtil { private static DisplayImageOptions options = new DisplayImageOptions.Builder() //下載時顯示的圖片 .showImageOnLoading(R.mipmap.ic_launcher) //下載錯誤時顯示的圖片 .showImageOnFail(R.mipmap.ic_launcher) //下載為空白時顯示的圖片 .showImageForEmptyUri(R.mipmap.ic_launcher) //儲存和硬碟 .cacheInMemory(true) .cacheOnDisk(true) .bitmapConfig(Bitmap.Config.ARGB_8888) //縮放類型 .imageScaleType(ImageScaleType.EXACTLY_STRETCHED) //複位 .resetViewBeforeLoading(true) .build(); public static void display(String url,ImageView imageView){ //此ImageLoader不是volley下的 ImageLoader.getInstance().displayImage(url,imageView,options); }public static void clear(){ ImageLoader.getInstance().clearDiskCache(); ImageLoader.getInstance().clearMemoryCache();} public static void imageLoader(Context context){ ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(context) .denyCacheImageMultipleSizesInMemory() //線程池推薦大小為3 .threadPoolSize(3) //線程優先順序 .threadPriority(Thread.NORM_PRIORITY) //記憶體緩衝大小 .memoryCacheSize((int) (Runtime.getRuntime().maxMemory()/8)) //硬碟緩衝大小 .diskCacheSize(50*1024*1024) //加密方式 .diskCacheFileNameGenerator(new Md5FileNameGenerator()) //預設設定 .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) .imageDownloader(new BaseImageDownloader(context,50000,50000)) //無限制緩衝 .diskCache(new UnlimitedDiskCache(FileUitlity.getInstance(context).makeDir("imgCache"))) .build(); ImageLoader.getInstance().init(configuration); }}
3:調用:
//初始化ImgLoaderUtil.imageLoader(context);//傳入圖片地址和要顯示的imageview,系統會自動處理網路與緩衝並載入顯示圖片ImgLoaderUtil.display(url, img);
Android圖片緩衝