在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ 轉換
配置
Generated API
轉換
選項
過渡效果
關于Glide
緩存
調試
目標
占位符
下載和設置
入門指南

轉換

Glide中轉換接收資源并將其轉換,返回轉換后的資源。通常,轉換用于裁剪或者對Bitmap應用過濾,但也可以用來轉換Gif動畫,甚至自定義資源類型。

內置類型

Glide中包含了一些內置的轉換,包括:

  • CenterCrop
  • FitCenter
  • CircieCrop

應用轉換

使用RequestOption類應用轉換:

默認轉換

RequestOptions options = new RequestOptions();
options.centerCrop();

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

大多數(shù)內置的轉換還可以靜態(tài)導入,以便使用靈活的API。例如,您可以使用靜態(tài)方法應用FitCenter轉換:

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

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

如果您使用生成的API,轉換方法是鏈式的,所以更加容易:

GlideApp.with(fragment)
  .load(url)
  .fitCenter()
  .into(imageView);

有關使用RequestOption的信息,請查閱選項頁面。

多重轉換

默認情況下,對每一個后續(xù)調用transform()或者任何特定對轉換方法(fitCenter(),centerCrop(),bitmapTransform()等等)將替換之前的轉換。

為了將多重轉換應用到單一到負載,請使用MultiTransformation類。

使用生成的API:

GlideApp.with(fragment)
  .load(url)
  .transform(new MultiTransformation(new FitCenter(), new YourCustomTransformation())
  .into(imageView);

將轉換傳遞給MultiTransformation的構造函數(shù)的次序決定了應用轉換的次序。

Glide中特殊行為

重新使用轉換

轉換是無狀態(tài)的。因此,多重負載中重用轉換實例應該總是安全的。通常情況下,一次創(chuàng)建轉換,然后將其傳遞給多重加載是好的做法。

ImageView的自動轉換

在Glide中當您開啟加載到ImageView時,Glide可能自動應用FitCenter或CenterCrop,具體取決于視圖的縮放類型。如果縮放類型是CENTER_CROP,Glide會自動應用CenterCrop轉換。如果縮放類型是FIT_CENTER或者CENTER_INSIDE,則Glide會自動應用FitCenter 轉換。

您可以總是通過應用具有轉換設置的請求選項覆寫默認的轉換。另外,您可以使用dontTransform()確保沒有自動的轉換。

自定義資源

因為Glide v4.0允許您指定要解碼的資源的超類型。您可能不知道要應用哪種轉換類型。例如,當您使用asDrawable()(或者只是with(),因為asDrawable()是默認值)請求Drawable資源時,可能獲取到BitmapDrawable的子類或者GifDrawable的子類。

為了確保您添加的任何轉換都能被請求選項應用,Glide會將您提供的資源類到轉換的映射添加到transform()方法。資源解碼后,Glide使用映射來檢索相應資源的轉換。

Glide可以應用Bitmap轉換成BitmapDrawable,GifDrawable,以及Bitmap資源,所以通常您只需要編寫以及應用Bitmap轉換。但是,如果您添加額外的資源類型,您可能需要考慮子類化RequestOption并且總是給您的自定義資源應用轉換,除了內置的Bitmap轉換。

上一篇:配置下一篇:Generated API