2017-01-18 58 views
0

我試圖在RecyclerView中將圖像(每個大約5mb)加載到大小爲45x45 dp的ImageView中。儘管原始圖像很大,但是由於目標ImageView很小,所以不會加載它的較小版本?所以,我希望Glide能夠在幾秒鐘內以平均上網速度加載圖片。但是,這需要20秒。問題是什麼?Glide在顯示大圖像之前需要很長時間

圖像存儲在firebase存儲中。

滑翔代碼:

Glide.with(context).load(firebaseStorageUrl).into(imageView); 

回答

0

滑翔需要從互聯網加載完整的圖像纔可以調整它的大小。所以第一次下載需要很長時間。之後,如果您啓用了緩存,它可以使用創建的cahe中的小圖像。

+0

因此,服務器中的圖像文件大於1MB是錯誤的? – user6650650

+0

這實際上取決於你打算如何處理它們。如果您不需要高分辨率,請不要存儲它。但是,如果您需要高分辨率版本的其他內容,您還應該在其他文件夾中添加小版本或使用像「thumb_」這樣的前綴 –

0

如果你不想加載較小的文件,我建議使用一個Gif-drawable庫從Glide加載到GifDrawable(作爲一個ImageView)的大圖像。

它可以非常快速地加載超過100MB的文件。它也適用於普通的JPG,PNG和BMP。如果這些是GIF,它會毫不遲延地播放或凍結。

如果android:src和/或android:background聲明的drawables是GIF文件,那麼它們將被自動識別爲GifDrawables並生成動畫。如果給出的drawable不是GIF,那麼視圖像普通的ImageView和ImageButton一樣工作。

0

Glide首先下載圖像,然後您有方法檢索圖像作爲位圖調整和壓縮圖像。但是,這不會解決您的問題。可能有兩種解決方案:

  1. 在服務器中保留一個小尺寸的圖像。
  2. 使用文件下載器庫,它有助於以串行方式和異步方式將圖像作爲隊列下載,這有助於快速下載文件。對於此庫,FileDownloader庫是一個不錯的選擇。
相關問題