首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从Glide onResourceReady返回

从Glide onResourceReady返回是指在使用Glide库加载图片时,当图片加载完成后,Glide会回调onResourceReady方法,我们可以在该方法中进行相应的处理。

在该方法中,我们可以获取到加载完成的图片资源,可以对图片进行进一步的处理或展示。以下是一个完善且全面的答案:

在Glide中,onResourceReady方法是一个回调方法,用于在图片加载完成后进行相应的处理。该方法有两个参数:

  1. resource:表示加载完成的图片资源,可以是Bitmap、Drawable或GifDrawable等类型。
  2. transition:表示图片加载的过渡效果。

在该方法中,我们可以对加载完成的图片资源进行各种操作,例如将图片显示在ImageView中,将图片保存到本地,对图片进行裁剪或滤镜处理等。

以下是一个示例代码,展示如何从Glide onResourceReady返回:

代码语言:txt
复制
Glide.with(context)
    .load(imageUrl)
    .into(new SimpleTarget<Drawable>() {
        @Override
        public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
            // 在这里处理加载完成的图片资源
            imageView.setImageDrawable(resource);
        }
    });

在上述代码中,我们使用Glide加载图片,并通过into方法指定一个SimpleTarget对象作为回调。在SimpleTarget的onResourceReady方法中,我们可以将加载完成的图片资源设置给ImageView。

除了设置图片到ImageView,我们还可以进行其他操作,例如保存图片到本地:

代码语言:txt
复制
Glide.with(context)
    .load(imageUrl)
    .into(new SimpleTarget<Drawable>() {
        @Override
        public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
            // 在这里处理加载完成的图片资源
            imageView.setImageDrawable(resource);
            
            // 保存图片到本地
            saveImageToLocal(resource);
        }
    });

在上述代码中,我们在onResourceReady方法中调用了saveImageToLocal方法,该方法用于将加载完成的图片资源保存到本地。

总结: 通过Glide的onResourceReady方法,我们可以在图片加载完成后进行各种操作,例如将图片显示在ImageView中、保存图片到本地等。这个方法为我们提供了灵活的处理图片加载完成后的操作方式。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云对象存储(COS):提供高可靠、低成本的云端存储服务,适用于图片、视频、音频等多媒体资源的存储和管理。详情请参考:https://cloud.tencent.com/product/cos
  • 腾讯云云服务器(CVM):提供弹性计算能力,可用于搭建应用程序、网站和服务。详情请参考:https://cloud.tencent.com/product/cvm
  • 腾讯云人工智能(AI):提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等。详情请参考:https://cloud.tencent.com/product/ai
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android图片加载框架最全解析(四),玩转Glide的回调与监听

事实上,刚才的继承结构图上就能看出,Glide在内部自动帮我们创建的GlideDrawableImageViewTarget就是ViewTarget的子类。...虽然我们知道Glide会在图片的加载过程中对图片进行缓存,但是缓存文件到底是存在哪里的,以及如何去直接访问这些缓存文件?我们都还不知道。...方法名上就可以看出来了,当图片加载完成的时候就会回调onResourceReady()方法,而当图片加载失败的时候就会回调onException()方法,onException()方法中会将失败的Exception...不过还有一点需要处理,onResourceReady()方法和onException()方法都有一个布尔值的返回值,返回false就表示这个事件没有被处理,还会继续向下传递,返回true就表示这个事件已经被处理掉了...举个简单点的例子,如果我们在RequestListener的onResourceReady()方法中返回了true,那么就不会再回调Target的onResourceReady()方法了。

2.6K60

深入理解Glide(1)——Glide的使用

在Android开发过程中,我们常常需要涉及大量的图片加载,图片加载框架设计,是Android高级开发工程师必备的技能,本节将通过分析Glide图片加载框架,来学习如何设计一个图片加载框架。...引入Glide 在项目中引入Glide方式十分方便,首先在在project层级下的build.gradle添加如下内容: repositories { mavenCentral() google...isFirstResource) { return false; } @Override public boolean onResourceReady...(this).load(url).apply(options).addListener(requestListener).into(imageView); 返回值false表示这个事件不会被处理,交给Glide...进行处理,比如我们在onResourceReady方法中返回了true,那么就会不会回调到Glide的Target中的onResourceReady()方法了。

69540

Android图片加载框架最全解析(八),带你全面了解Glide 4的用法

也就是说,当我们使用Glide加载了一张图片之后,这张图片就会被缓存到内存当中,只要在它还没内存中被清除之前,下次使用Glide再加载这张图片都会直接内存当中读取,而不用重新网络或硬盘上读取了,这样无疑就可以大幅度提升图片的加载效率...方法名上就可以看出来了,当图片加载完成的时候就会回调onResourceReady()方法,而当图片加载失败的时候就会回调onLoadFailed()方法,onLoadFailed()方法中会将失败的...不过还有一点需要处理,onResourceReady()方法和onLoadFailed()方法都有一个布尔值的返回值,返回false就表示这个事件没有被处理,还会继续向下传递,返回true就表示这个事件已经被处理掉了...举个简单点的例子,如果我们在RequestListener的onResourceReady()方法中返回了true,那么就不会再回调Target的onResourceReady()方法了。...下面我们就来学习一下自定义模块要如何实现。

2.5K70

Android图片加载框架最全解析(二),源码的角度理解Glide的执行流程

如何阅读源码 在开始解析Glide源码之前,我想先和大家谈一下该如何阅读源码,这个问题也是我平时被问得比较多的,因为很多人都觉得阅读源码是一件比较困难的事情。 那么阅读源码到底困难吗?...那么我们本篇文章就先确立好一个目标,就是要通过阅读源码搞明白下面这行代码: Glide.with(this).load(url).into(imageView); 到底是如何实现将一张网络图片展示到ImageView...这里额外再提一句,第48行代码可以看出,如果我们是在非主线程当中使用的Glide,那么不管你是传入的Activity还是Fragment,都会被强制当成Application来处理。...然后在第23行调用了decodeStream()方法,准备服务器返回的流当中读取数据。...其实这也是Glide源码特别难懂的原因之一,就是它用到的很多对象都是很早很早之前就初始化的,在初始化的时候你可能完全就没有留意过它,因为一时半会根本就用不着,但是真正需要用到的时候你却早就记不起来这个对象是哪儿来的了

2.6K100

详解Glide4.0集成及使用注意事项

} # for DexGuard only -keepresourcexmlelements manifest/application/meta-data@value=GlideModule # glide4.0...除此之外,glide4.0还去掉了GlideDrawableImageViewTarget类,那我们该如何来计算gif播放一次的时长呢?只能从源码中找答案了。...源码中,可以看到GifDrawable提供了getConstantState()方法来获取state变量(这个变量的类型就是GifState),但是GifState并没有get方法获取frameLoader...glide3.7.0源码可以发现GlideDrawableImageViewTarget是通过GlideDrawable的setLoopCount方法来设置循环播放次数的,查看setLoopCount...glide4.0中没有GlideDrawable类和GlideDrawableImageViewTarget类,但是仍然有GifDrawable类,并且onResourceReady方法中第一个参数就是

1.9K31

浅谈 Glide - BitmapPool 的存储时机 & 解答 ViewTarget 在同一View显示不同的图片时,总用同一个 Bitmap 引用的原因

Glide 在使用默认的Targer方式下,同一个 View 加载不同 URL 图片的时候,返回的 Bitmap 引用地址是一样的,但图片像素不一样。...返回的 resource 内存地址总是同一个。...} } ); 这个时候依然传参是同一个 ImageView 也不会造成 onResourceReady 返回的 resource 内存地址总是同一个的情况...那么到底是什么原因导致了: Glide 在满足下面两点的时候,加载返回的 Bitmap 引用地址是一样的,但图片像素不一样?...glide 默认的加载形式中 Target 都继承了 ViewTarget SimpleTarget 没有继承 ViewTarget glide 在每次请求开始的时候会去调用 target.getRequest

1.4K100

深入解析Glide源码

Glide 是 Google的开源项目, Glide具有获取、解码和展示视频剧照、图片、动画等功能,它还有灵活的API,这些API使开发者能够将Glide应用在几乎任何网络协议栈里。...创建Glide的主要目的有两个,一个是实现平滑的图片列表滚动效果,另一个是支持远程图片的获取、大小调整和展示。本篇博客,我们一起深入分析Glide的源码。...总体设计 with方法 首先我们来看一下glide的一般使用方法 Glide.with(this) .load("http://image.baidu.com/search/detail...以上两个缓存中都找不到的话,就会jobs通过key获取EngineJob,如果EngineJob存在的话,则用其构造LoadStatus进行返回 EngineJob current = jobs.get...void onResourceReady(Resource<?

66130

Android源码分析:手把手带你分析 Glide的缓存功能

如,在 RecyclerView 上下滑动,而RecyclerView中只要是Glide加载过的图片,都可以直接内存中读取 & 展示,从而不需要重复 网络或硬盘上读取,提高图片加载效率。...Glide 缓存流程 解析 Glide整个缓存流程 加载图片请求 开始,其中过程 有本文最关注的 内存缓存的读取 & 写入、磁盘缓存的读取 & 写入 具体如下 ?...= null) { cb.onResourceReady(cached); } // 若获取到,就直接调用cb.onResourceReady()...,此处不作过多描述 return decodeFromSource(); } } ---- 步骤5: 磁盘缓存 中获取缓存图片 若无法 内存缓存 里 获得缓存的图片,Glide...先将图片数据 转换 再 解码,最终返回 } 至此,硬盘缓存读取的源码分析完毕。 总结 ?

2.1K21

Glide源码分析(一)

Glide作为一个图片加载框架深受开发者喜欢,包体积小,加载速度快,以及加载圆角等。作为一名开发者我们有必要去了解Glide图片加载机制,它是如何把图片加载出来的?以及在图片加载过程中它都做了什么?...= null) { // 若缓存存在, 则直接回调 onResourceReady 处理后续操作 cb.onResourceReady(active, DataSource.MEMORY_CACHE...1.ActiveResources缓存中查找key的缓存 2.LruResourceCache 缓存中查找key的缓存 请求任务中 查找key的缓存 engineJobFactory() decodeJobFactory...我们知道在 Engine 中, 尝试内存缓存中获取资源, 而 DecodeJob 则是尝试磁盘缓存中获取资源, 我们这里主要查看 SourceGenerator.startNext 是如何加载请求任务的数据的... Glide 注册的 register 中获取请求 model 加载器 List<ModelLoader<Object, ?

1.4K30
领券