簡體   English   中英

使用 Glide 在圖像視圖中加載圖像

[英]Loading Image in Image View using Glide

我正在開發一個應用程序,該應用程序顯示從我的 firebase 數據庫加載的圖像。 為此,我使用了 Glide。

我正在使用一個按鈕,單擊該按鈕時將打開一個新活動,其中顯示從 url 獲取的圖像。 如果 url 加載正確,圖像加載完美,但如果我在兩者之間取消,應用程序就會崩潰。 為什么會發生這種情況,以及是否有任何選項可以使用 glide 將圖像保存在緩存中,以便它可以加載一次並顯示而無需從 firebase 中獲取它。

這是我從 url 顯示圖像的代碼:

public void showImage(){
    mStorageRef.child("TimeTable").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
        @Override
        public void onSuccess(Uri uri) {
            url = uri.toString();
            RequestOptions options = new RequestOptions().centerCrop().placeholder(R.mipmap.ic_launcher).error(R.mipmap.ic_launcher_round);
            Toast.makeText(TimeTable.this, uri.toString(),Toast.LENGTH_SHORT).show();
            Glide.with(TimeTable.this).load(url).apply(options).into(image);
        }
    });
}

這是錯誤日志,當我在圖像完全加載之前關閉活動時..

在此處輸入圖片說明

請詢問是否需要任何進一步的細節。

您可以使用 Glide 緩存加載的圖像。 我指的是這里教程,您可以其中學習使用 Glide 進行圖像緩存的基礎知識。

現在關於崩潰問題,它清楚地表明您正在嘗試從已經銷毀的活動中加載某些內容。 由於您在加載圖像的位置添加了 firebase 偵聽器,因此您需要在離開活動時銷毀偵聽器。

您可能會考慮使用onPauseonDestroy函數來處理刪除偵聽器操作。 檢查 Firebase 的removeEventListener函數。

但是,我建議使用加載器的活動范圍版本,以便 Firebase 任務自行處理這些事情。 請在此處查看答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM