繁体   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