Glide中大多數(shù)的選項可以使用RequestOptions類和apply()方法來應用。
使用請求選項(其中包括):
例如,要應用CenterCrop、Transformation,您的代碼可以這樣編寫:
import static com.bumptech.glide.request.RequestOptions.centerCropTransform;
Glide.with(fragment)
.load(url)
.apply(centerCropTransform(context))
.into(imageView);
從RequestOptions引入靜態(tài)方法將是更加靈活的方式。
如果您始終想要在程序的不同部分共享選項,您可以實例化一個新的RequestOptions對象并傳遞給每個負載操作:
RequestOptions cropOptions = new RequestOptions().centerCrop(context);
...
Glide.with(fragment)
.load(url)
.apply(cropOptions)
.into(imageView);
apply()可以被調(diào)用多次,所以RequestOptions可以組合。如果兩個RequestOptions對象包含沖突的,那么最后設置的RequestOptions才會生效。
過渡選項決定在請求完成后,將會發(fā)生什么。
應用過渡選項:
沒有過渡效果,您的圖像會突然出現(xiàn),立即替代之前的圖像。為了避免突然改變,您可以淡入View,或者使用過渡選項在Drawable之間淡入淡出。
例如,應用淡入淡出:
import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;
Glide.with(fragment)
.load(url)
.transition(withCrossFade())
.into(view);
與請求選項不同,過渡選項是您使用Glide加載綁定資源的特殊類型。
因此,當您請求Bitmap時,您需要使用BitmapTransitionOption而不是DrawableTransitionOptions。因此,當您請求Bitmap,您可能需要的是簡單的淡入,而不是淡入淡出。
在Glide中RequestBuilder是請求的核心,負責攜帶您的選項跟您請求URL/模型開啟新的負載。
使用RequestBuilder指定:
每次調(diào)用Glide.with()您都會產(chǎn)生一個RequestManager對象:
RequestManager requestManager = Glide.with(this);
RequestManager可以指定加載的資源類型。默認情況下,獲取的是Drawable RequestBuilder。您可以使用as...方法改變請求類型。例如,您可以調(diào)用asBitmap()您將獲取一個Bitmap RequestBuilder。
RequestBuilder<Bitmap> requestBuilder = Glide.with(fragment).asBitmap();
如上所示,通過apply()方法應用請求選項,使用transition()方法應用過渡選項:
RequestBuilder<Drawable> requestBuilder = Glide.with(this).asDrawable();
requestBuilder.apply(requestOptions);
requestBuilder.transition(transitionOptions);
啟動多個負載時,RequestBuilder可以被重用:
RequestBuilder<Drawable> requestBuilder =
Glide.with(fragment)
.asDrawable()
.apply(requestOptions);
for (int i = 0; i < numViews; i++) {
ImageView view = viewGroup.getChildAt(i);
String url = urls.get(i);
requestBuilder.load(url).into(view);
}