鍍金池/ 教程/ Android/ 選項(xiàng)
配置
Generated API
轉(zhuǎn)換
選項(xiàng)
過(guò)渡效果
關(guān)于Glide
緩存
調(diào)試
目標(biāo)
占位符
下載和設(shè)置
入門指南

選項(xiàng)

請(qǐng)求選項(xiàng)

Glide中大多數(shù)的選項(xiàng)可以使用RequestOptions類和apply()方法來(lái)應(yīng)用。

使用請(qǐng)求選項(xiàng)(其中包括):

  • 占位符
  • 轉(zhuǎn)換
  • 緩存策略
  • 組件特定選項(xiàng),如編碼或解碼質(zhì)量,Bitmap配置。

例如,要應(yīng)用CenterCrop、Transformation,您的代碼可以這樣編寫:

import static com.bumptech.glide.request.RequestOptions.centerCropTransform;

Glide.with(fragment)
    .load(url)
    .apply(centerCropTransform(context))
    .into(imageView);

RequestOptions引入靜態(tài)方法將是更加靈活的方式。

如果您始終想要在程序的不同部分共享選項(xiàng),您可以實(shí)例化一個(gè)新的RequestOptions對(duì)象并傳遞給每個(gè)負(fù)載操作:

RequestOptions cropOptions = new RequestOptions().centerCrop(context);
...
Glide.with(fragment)
    .load(url)
    .apply(cropOptions)
    .into(imageView);

apply()可以被調(diào)用多次,所以RequestOptions可以組合。如果兩個(gè)RequestOptions對(duì)象包含沖突的,那么最后設(shè)置的RequestOptions才會(huì)生效。

過(guò)渡選項(xiàng)

過(guò)渡選項(xiàng)決定在請(qǐng)求完成后,將會(huì)發(fā)生什么。

應(yīng)用過(guò)渡選項(xiàng):

  • View淡入
  • 占位符淡出
  • 沒(méi)有過(guò)渡效果

沒(méi)有過(guò)渡效果,您的圖像會(huì)突然出現(xiàn),立即替代之前的圖像。為了避免突然改變,您可以淡入View,或者使用過(guò)渡選項(xiàng)在Drawable之間淡入淡出。

例如,應(yīng)用淡入淡出:

import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;

Glide.with(fragment)
    .load(url)
    .transition(withCrossFade())
    .into(view);

請(qǐng)求選項(xiàng)不同,過(guò)渡選項(xiàng)是您使用Glide加載綁定資源的特殊類型。

因此,當(dāng)您請(qǐng)求Bitmap時(shí),您需要使用BitmapTransitionOption而不是DrawableTransitionOptions。因此,當(dāng)您請(qǐng)求Bitmap,您可能需要的是簡(jiǎn)單的淡入,而不是淡入淡出。

RequestBuilder

在Glide中RequestBuilder是請(qǐng)求的核心,負(fù)責(zé)攜帶您的選項(xiàng)跟您請(qǐng)求URL/模型開(kāi)啟新的負(fù)載。

使用RequestBuilder指定:

  • 要加載的資源類型(Bitmap,Drawable等等)
  • 從URL/模型中加載資源
  • 加載資源到View
  • 任何您想申請(qǐng)的RequestOption對(duì)象
  • 任何您想申請(qǐng)的TransitionOption對(duì)象
  • 任何您想加載的縮略圖

每次調(diào)用Glide.with()您都會(huì)產(chǎn)生一個(gè)RequestManager對(duì)象:

RequestManager requestManager = Glide.with(this);

選擇資源類型

RequestManager可以指定加載的資源類型。默認(rèn)情況下,獲取的是Drawable RequestBuilder。您可以使用as...方法改變請(qǐng)求類型。例如,您可以調(diào)用asBitmap()您將獲取一個(gè)Bitmap RequestBuilder

RequestBuilder<Bitmap> requestBuilder = Glide.with(fragment).asBitmap();

應(yīng)用請(qǐng)求選項(xiàng)

如上所示,通過(guò)apply()方法應(yīng)用請(qǐng)求選項(xiàng),使用transition()方法應(yīng)用過(guò)渡選項(xiàng)

RequestBuilder<Drawable> requestBuilder = Glide.with(this).asDrawable();
requestBuilder.apply(requestOptions);
requestBuilder.transition(transitionOptions);

啟動(dòng)多個(gè)負(fù)載時(shí),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);
}
上一篇:占位符下一篇:入門指南