Glide入門教程——8. 請求優先級

Glide — 請求優先級

原文:Request Priorities
作者:Norman Peitek
翻譯:Dexter0218

前面介紹了圖片加載的關鍵部分:緩存!如果你錯過了看,很值得再回去看看。這篇文章我們要介紹Glide的另外一個重要特征:根據優先級排序圖片請求。

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. 系列綜述

圖片請求優先級

你經常會遇到這些情況,你的app需要同時加載多個圖片。假設你正在創建一個信息展示界面,包含頂部的一個主要照片,還有底部的2個并不重要的小圖。對于用戶體驗,我們最好先加載主角照片,然后再加載底部不緊急的圖片。Glide里的.priority()方法和Priority的枚舉變量支持你的想法。

在看例子之前,我們先看一下作為.priority()方法參數的Priority的枚舉變量。

學習Priority枚舉變量

一共有四個不同的枚舉變量。下面以遞增方式列出:

  • Priority.LOW

  • Priority.NORMAL

  • Priority.HIGH

  • Priority.IMMEDIATE

在跳到例子前,你應當明白優先級并不是非常嚴格的。Glide會將它們作為一個指導來最優化處理請求。但并不意味著所有的圖片都能夠按請求的順序加載。

然而。如果你已經有需要某些重要的圖片的使用場景,好好利用優先級!

使用例子: 帶有子圖的主要元素

讓我們回顧一下我們最開始的例子。你正在實現一個信息細節界面,其中包含1個頂部的主要圖片,還有底部的2個小圖。對于最佳的用戶體驗,主要圖片需要優先被加載。這樣,我們分配Priority.HIGH給它。理論上,那就夠了。但為了這個例子更有趣,我們通過調用.priority(Priority.LOW)分配給底部的圖片低優先級權限:

private void loadImageWithHighPriority() {  
    Glide
        .with( context )
        .load( UsageExampleListViewAdapter.eatFoodyImages[0] )
        .priority( Priority.HIGH )
        .into( imageViewHero );
}

private void loadImagesWithLowPriority() {  
    Glide
        .with( context )
        .load( UsageExampleListViewAdapter.eatFoodyImages[1] )
        .priority( Priority.LOW )
        .into( imageViewLowPrioLeft );

    Glide
        .with( context )
        .load( UsageExampleListViewAdapter.eatFoodyImages[2] )
        .priority( Priority.LOW )
        .into( imageViewLowPrioRight );
}

如果你運行了這個例子,你會發現,不管是多大的圖片,幾乎所有情況下主要的圖片都會被優先顯示。(圖片越大,需要更多的處理時間)

展望

Glide提供非常方便的選項去分配圖片請求的優先級。非常簡單快捷地讓用戶體驗提升??纯茨愕腶pp和你的代碼,是不是能將這些學到的技能用進去!

權限優先級是非常有用的,但并不能總是完美地解決問題。我們假設你要下載一個非常大的圖片,不管你設置多高的權限,它仍然會花費較長時間去下載和處理。后面的文章,為了更好地提升用戶體驗,我們會學習Glide工具外的另一個工具:縮略圖!

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

推薦閱讀更多精彩內容

  • 寫在前面:這篇文章原著是Norman Peitek,所有著作權歸原作者所有,我只是在學習Glide的時候看到有間書...
    itarbo閱讀 3,125評論 0 1
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,523評論 25 708
  • 零、前言 本文所使用的Glide版本為3.7.0如果需要使用V4的最新版本請參考Glide V4使用指南 一、簡介...
    MrTrying閱讀 204,329評論 36 255
  • 在一個 Gradle 項目中在你的 build.gradle中添加下面這行代碼: 從一個 URL 中加載圖片就像 ...
    A_Coder閱讀 2,023評論 0 4
  • ide pycharm,有自動提示功能,安裝比較簡單,先安裝python,再安裝pycharm就ok。 爬蟲依賴庫...
    jacksu在簡書閱讀 387評論 0 0