<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                當我們看了加載,顯示和處理圖像后,我們將會繼續進行優化的進程。圖像成功和高效加載的一個很基礎的功能是緩存!在這篇博客中,我們將整理在 Glide 中的緩存基礎。 **緩存基礎?** 在 Android App 中必須去做的是一個很好的實現圖片加載組件,嘗試去減少網絡請求。Glide 在這里并沒有什么不同。Glide 通過使用默認的內存和磁環緩存去避免不必要的網絡請求。我們將在后面的博客中去詳細的查看實現細節。如果你等不到那個時候,通過瀏覽[官方文檔](https://github.com/bumptech/glide/wiki/Caching-and-Cache-Invalidation)這個話題。 目前最重要的是帶著所有的圖片請求放到內存和磁盤中。雖然緩存通常是很有用的,但在某些情況下,它可能不是像期待的行為那樣。在下一節中,我們會看看如何為單個請求改變 Glide 的緩存行為。 **使用緩存策略**? 如果你以前用過 Glide。你會發現不需要去做任何額外的事情來激活緩存。它直接就從盒子里取出來用了!然而,如果你知道一張圖片變化很快,你可能想要避免某些緩存。 Glide 提供了方法去適配內存和磁盤緩存行為。讓我們先看看內存緩存。 **內存緩存**? 讓我們想象一個非常簡單的請求,從網絡中加載圖片到 `ImageView`。 ~~~ Glide .with( context ) .load( eatFoodyImages[0] ) .skipMemoryCache( true ) .into( imageViewInternet ) ~~~; 你已經注意到,我們調用了 `.skipMemoryCache(true)` 去明確告訴 Glide 跳過內存緩存。這意味著 Glide 將不會把這張圖片放到內存緩存中去。這里需要明白的是,這只是會影響內存緩存!Glide 將會仍然利用磁盤緩存來避免重復的網絡請求。 這也容易知道 Glide 將會默認將所有的圖片資源放到內存緩存中去。因為,指明調用 `.skipMemoryCache(false)` 是沒有必要的。 **提示:注意一個事實,對于相同的 URL ,如果你的初始請求沒調用 .skipMemoryCache(true) 方法,你后來又調用了 `.skipMemoryCache(true)` 這個方法,這個資源將會在內存中獲取緩存。當你想要去調整緩存行為時,確保對同一個資源調用的一致性。** **跳過磁盤緩存**? 正如你上面這部分所了解到的,即使你關閉內存緩存,請求圖片將會仍然被存儲在設備的磁盤緩存中。如果你有一張圖片具有相同的 URL,但是變化很快,你可能想要連磁盤緩存也一起禁用。 你可以用 `.diskCacheStrategy()` 方法為 Glide 改變磁盤緩存的行為。不同的于 `.skipMemoryCache()` 方法,它需要一個枚舉而不是一個簡答的布爾值。如果你想要為一個請求禁用磁盤緩存。使用枚舉 `DiskCacheStrategy.NONE` 作為參數。 ~~~ Glide .with( context ) .load( eatFoodyImages[0] ) .diskCacheStrategy( DiskCacheStrategy.NONE ) .into( imageViewInternet ); ~~~ 圖片在這段代碼片段中將不會被保存在磁盤緩存中。然而,默認的它將仍然使用內存緩存!為了把這里兩者都禁用掉,兩個方法一起調用: ~~~ Glide .with( context ) .load( eatFoodyImages[0] ) .diskCacheStrategy( DiskCacheStrategy.NONE ) .skipMemoryCache( true ) .into( imageViewInternet ); ~~~ **自定義磁盤緩存行為?** 正如我們之前提到的,Glide 有多個選項去配置磁盤緩存行為。在我們向你展示這些選項之前,你必須了解到 Glide 的磁盤緩存是相當復雜的。比如,[Picasso](https://futurestud.io/blog/tag/picasso) 僅僅緩存了全尺寸的圖像。然而 Glide 緩存了原始圖像,全分辨率圖像和另外小版本的圖像。比如,如果你請求的一個圖像是 1000x1000 像素的,但你的 `ImageView` 是 500x500 像素的,Glide 將會把這兩個尺寸都進行緩存。 現在你將會理解對于 `.diskCacheStrategy()` 方法來說不同的枚舉參數的意義: * `DiskCacheStrategy.NONE` 什么都不緩存,就像剛討論的那樣 * `DiskCacheStrategy.SOURCE` 僅僅只緩存原來的全分辨率的圖像。在我們上面的例子中,將會只有一個 1000x1000 像素的圖片 * `DiskCacheStrategy.RESULT` 僅僅緩存最終的圖像,即,降低分辨率后的(或者是轉換后的) * `DiskCacheStrategy.ALL` 緩存所有版本的圖像(**默認行為**) 作為最后一個例子,如果你有一張圖片,你知道你將會經常操作處理,并做了一堆不同的版本,對其有意義的僅僅是緩存原始分辨率圖片。因此,我們用 `DiskCacheStrategy.SOURCE` 去告訴 Glide 僅僅保存原始圖片: ~~~ Glide .with( context ) .load( eatFoodyImages[2] ) .diskCacheStrategy( DiskCacheStrategy.SOURCE ) .into( imageViewFile ); ~~~ **Outlook**? 在這篇博客中,你已經了解了 Glide 圖像緩存工作的基礎知識以及你如何根據你的需求去調整它的行為。在后面的博客中,我們會回頭來做更高級的優化。然而,這個博客開了個頭,給了你一個非常有效的方法去獲得最出色的 Glide 緩存行為。 下周,我們將看另一個對于用戶體驗來說極其重要的部分:對圖像的要求!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看