Glide入門教程——2.高級加載

Glide — 高級加載

原文:Advanced Loading
作者:Norman Peitek
翻譯:Dexter0218

上一篇文章,我們一起了解了為何要使用Glide,并舉了個簡單栗子(從網絡加載一張圖片)。但這并不是Glide唯一支持的圖片源。在這篇文章中,將要介紹Glide如何從Android資源、文件和Uri中獲取圖片并加載。

Glide 系列概覽

  1. 入門簡介
  2. 高級加載
  3. 適配器(ListView, GridView)
  4. 占位圖& 淡入淡出動畫
  5. 圖片大小 & 縮放
  6. 播放GIF & 視頻
  7. 緩存基礎
  8. 請求優先級
  9. 縮略圖
  10. 回調:定制view中使用SimpleTarget和ViewTarget
  11. 通知欄和桌面小控件的圖片加載
  12. 異常: 調試和報錯處理
  13. 自定義變換
  14. 用animate()定制動畫
  15. 整合網絡協議棧
  16. 用Modules定制Glide
  17. Glide Module 案例: 接受自簽名HTTPS證書
  18. Glide Module 案例: 自定義緩存
  19. Glide Module 案例: 通過加載自定義大小圖片優化
  20. 動態使用 Model Loaders
  21. 如何旋轉圖片
  22. 系列綜述

從Res資源中加載

首先介紹從Android資源中加載。不同于上一節的String類型的網絡URL,這里是一個Int型的的資源id。

int resourceId = R.mipmap.ic_launcher;

Glide
    .with(context)
    .load(resourceId)
    .into(imageViewResource);

如果你覺得R.mipmap.沒見過, 這是Android的一個處理圖標的新方法
雖然,你可以直接在ImageView的屬性里添加這一資源。但是,如果你使用Glide這種更高級的方式進行動態轉換,你的應用可以做得非常有趣。

從文件中加載

從資源文件加載,通常是固定的,當你讓用戶任意選擇一張圖片來顯示的時候,這個文件的路徑并非是開發人員預先設定的,從圖片文件中加載對于實際應用將會非常有用。需要傳遞的參數也僅僅是一個文件對象,舉個栗子:

// this file probably does not exist on your device. However, you can use any file path, which points to an image file

File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "Running.jpg");

Glide
    .with(context)
    .load(file)
    .into(imageViewFile);

從Uri加載

最后介紹從Uri中加載圖片,這里的請求跟上面的方法并無太大差異,直接看代碼:

// 這個可以是任何Uri. 這里為了演示,我們只創建了一個指向桌面圖標的Uri

Uri uri = resourceIdToUri(context, R.mipmap.future_studio_launcher);

Glide
    .with(context)
    .load(uri)
    .into(imageViewUri);

下面一個小的工具函數可以將資源id轉換為一個Uri:

public static final String ANDROID_RESOURCE = "android.resource://";
public static final String FOREWARD_SLASH = "/";

private static Uri resourceIdToUri(Context context, int resourceId) {
    return Uri.parse(ANDROID_RESOURCE + context.getPackageName() + FOREWARD_SLASH + resourceId);
}

當然,Uri并不一定是從資源id中創建,它可以是任意Uri。

展望

基本的加載方法都已經介紹了。我們將會去探索一些更有趣的東西. 下一篇文章,將要介紹ListView和GridView中適配器的使用和用Glide進行緩存。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容