Glide - 集成網絡棧

來自: http://mrfu.me/2016/02/28/Glide_Integrating_Networking_Stacks/

在學習了加載和顯示圖像的各種選項之后,來看看為 Glide 改變基本的網絡棧吧。該指南假定你正在 使用 Gradle

Glide 系列預覽

  1. 開始!
  2. 加載進階
  3. ListAdapter(ListView, GridView)
  4. 占位符 和 漸現動畫
  5. 圖片重設大小 和 縮放
  6. 顯示 Gif 和 Video
  7. 緩存基礎
  8. 請求優先級
  9. 縮略圖
  10. 回調:SimpleTarget 和 ViewTarget 用于自定義視圖類
  11. 加載圖片到通知欄和應用小部件中
  12. 異常:調試和錯誤處理
  13. 自定義轉換
  14. 用 animate() 自定義動畫
  15. 集成網絡棧
  16. 用 Module 自定義 Glide
  17. Module 實例:接受自簽名證書的 HTTPS
  18. Module 實例:自定義緩存
  19. Module 實例:用自定義尺寸優化加載的圖片
  20. 動態使用 Model Loader
  21. 如何旋轉圖像
  22. 系列綜述

集成網絡棧

通過 HTTP/HTTPS 從網絡上下載圖像并顯示是非常重要的一塊。雖然標準的 Android 網絡包也能做這些工作,但在 Android 中開發了很多提升網絡的模塊。每個庫有它自己的優勢和劣勢。最后,這其實需要項目的配合和開發人員自己的品位來決定的。

Glide 的開發者不強制設置網絡庫給你,所以 Glide 可以說和 HTTP/S 無關。理論上,它可以與任何的網絡庫實現,只要覆蓋了基本的網絡能力就行。用 Glide 集成一個網絡不是完全無縫的。它需要一個 Glide 的 ModeLoader 的接口。為了讓你更加易用,Glide 為2個網絡庫提供了實現: OkHttpVolley

OkHttp

假定你要集成 OkHttp 作為你給 Glide 的網絡庫。集成可以通過聲明一個 GlideModule 手動實現。如果你想要避免手動實現,只需要打開你的 build.gradle 然后在你的依賴中添加下面這兩行代碼:

dependencies {  
    // your other dependencies
    // ...

    // Glide
    compile 'com.github.bumptech.glide:glide:3.6.1'

    // Glide's OkHttp Integration 
    compile 'com.github.bumptech.glide:okhttp-integration:1.3.1@aar'
    compile 'com.squareup.okhttp:okhttp:2.5.0'
}

Gradle 會自動合并必要的 GlideModule 到你的 Android.Manifest 。Glide 會認可在 manifest 中的存在,然后使用 OkHttp 做到所有的網絡連接。

Volley

另一方面,如果你偏愛使用 Volley,你必須改變你的 build.gradle 依賴:

dependencies {  
    // your other dependencies
    // ...

    // Glide
    compile 'com.github.bumptech.glide:glide:3.6.1'

    // Glide's Volley Integration 
    compile 'com.github.bumptech.glide:volley-integration:1.3.1@aar'
    compile 'com.mcxiaoke.volley:library:1.0.8'
}

這將添加 Volley 并集成該庫到你的項目中。集成庫添加到 GlideModule 到你的 Android.Manifest 。Glide 會自動認出它,然后使用 Volley 作為網絡庫。并不要求做其他的配置!

警告::如果你把這兩個庫都在你的 build.gradle 中聲明了,那這兩個庫都會被添加。因為 Glide 沒有任何特殊的加載順序,你將會有一個不穩定的狀態,它并不明確使用哪個網絡庫,所以確保你只添加了一個集成庫。

其他網絡庫

如果你是別的網絡庫的粉絲,你是不幸的。Glide 除了 Volley 和 OkHttp 外不會自動配置其他的庫。然而你隨時可以整合你喜歡的網絡庫,在 GitHub 上去開一個 pull request。為 Volley 和 OkHttp 可能給你一個方向。

Summary

你可以看到,集成網絡是相當容易,如果你剛好使用 Gradle 作為你的構建系統,這就不需要做額外的進一步配置。如果你不使用 Gradle,請看看 這里 。在不久的將來,我們會在 GlideModule 來進行進一步的定制。敬請期待!

</div>

 本文由用戶 ArnoldoBeal 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!