即日解說的是谷歌引薦的圖片框架glide的精細運用本領
開始翻開AS工程-Android開拓情況
增添依附
implementation'com.github.bumptech.glide:glide:4.5.0'annotationProcessor'com.github.bumptech.glide:compiler:4.5.0'增添搜集權力
<uses-permissionandroid:name="android.permission.INTERNET"/>圖片的運用
1、加載圖片到imageView
Glide.with(Contextcontext).load(Strinturl).into(ImageViewimageView);2、百般情勢的圖片加載到ImageView
//加載當地圖片Filefile=newFile(getExternalCacheDir()+"/image.jpg");Glide.with(this).load(file).into(imageView);//加載運用資源intresource=R.drawable.image;Glide.with(this).load(resource).into(imageView);//加載二進制流byte[]image=getImageBytes();Glide.with(this).load(image).into(imageView);//加載Uri東西UriimageUri=getImageUri();Glide.with(this).load(imageUri).into(imageView);3、加載帶有占位圖
Glide.with(this).load(url).placeholder(R.drawable.loading).into(imageView);占位圖手段為在手段圖片還未加載出來的功夫,提早展現給用戶的一張圖片;
4、加載波折安置占位符
Glide.with(this).load(url).placeholder(R.drawable.loading).error(R.drawable.error).diskCacheStrategy(DiskCacheStrategy.NONE)//封閉Glide的硬盤緩存體制.into(imageView);//DiskCacheStrategy.NONE:表白不緩存任何實質。//DiskCacheStrategy.SOURCE:表白只緩存原始圖片。//DiskCacheStrategy.RESULT:表白只緩存變換事后的圖片(默許選項)。//DiskCacheStrategy.ALL:表白既緩存原始圖片,也緩存變換事后的圖片。5、加載指定***的圖片–指定于停止圖片
Glide.with(this).load(url).asBitmap()//只加載靜態圖片,即使是git圖片則只加載第一幀。.placeholder(R.drawable.loading).error(R.drawable.error).diskCacheStrategy(DiskCacheStrategy.NONE).into(imageView);6、加載動靜圖片
Glide.with(this).load(url).asGif()//加載動靜圖片,若現有圖片為非gif圖片,則徑直加載缺點占位圖。.placeholder(R.drawable.loading).error(R.drawable.error).diskCacheStrategy(DiskCacheStrategy.NONE).into(imageView);7、加載指定巨細的圖片
Glide.with(this).load(url).placeholder(R.drawable.loading).error(R.drawable.error).diskCacheStrategy(DiskCacheStrategy.NONE).override(100,100)//指定圖片巨細.into(imageView)8、封閉框架的外存緩存體制
Glide.with(this).load(url).skipMemoryCache(true)//傳入參數為false時,則封閉外存緩存。.into(imageView);9、封閉硬盤的緩存
Glide.with(this).load(url).diskCacheStrategy(DiskCacheStrategy.NONE)//封閉硬盤緩存操縱.into(imageView);10、運用Glide將圖片加載到各別控件或加載成各別運用辦法
//1、經過本人結構target不妨獲得到圖片范例SimpleTarget<GlideDrawable>simpleTarget=newSimpleTarget<GlideDrawable>(){@OverridepublicvoidonResourceReady(GlideDrawableresource,GlideAnimationglideAnimation){imageView.setImageDrawable(resource);}};//2、將圖片范例記錄到指定的imageview上,也不妨做其余的工作publicvoidloadImage(Viewview){Stringurl="/n/zb_users/upload/images/2022/04/202204122255061888.jpg訴求預加載圖片,Glide實行預加載
//a、預加載代碼Glide.with(this).load(url).diskCacheStrategy(DiskCacheStrategy.SOURCE).preload();//preload()有兩種重載//1、帶有參數的重載,參數效率是樹立預加載的圖片巨細;//2、不帶參數的表白加載的圖片為原始尺寸;//b、運用預加載的圖片Glide.with(this).load(url).diskCacheStrategy(DiskCacheStrategy.SOURCE).into(imageView);12、監聽Glide加載的狀況
publicvoidloadImage(Viewview){Stringurl="/n/zb_users/upload/images/2022/04/202204122255071889.jpgRequestListener<String,GlideDrawable>(){@OverridepublicbooleanonException(Exceptione,Stringmodel,Target<GlideDrawable>target,booleanisFirstResource){returnfalse;}@OverridepublicbooleanonResourceReady(GlideDrawableresource,Stringmodel,Target<GlideDrawable>target,booleanisFromMemoryCache,booleanisFirstResource){returnfalse;}}).into(imageView);}