Glide图片加载回调
1、方法一:设置图片中监听
使用的是SimpleTarget类,他继承自BaseTarget,需要重写onResourceReady方法,onResourceReady方法表示加载完成后的回调,下面列举了返回为Drawable和Bitmap两种形式的回调,除了支持回调onResourceReady,还支持如下回调:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Glide.with(mContext) .load( "url" ) .into( new SimpleTarget<GlideDrawable>() { @Override public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) { //加载完成后的处理 imageView.setImageDrawable(resource); } }); Glide.with(mContext) .load( "url" ) .asBitmap() .into( new SimpleTarget<Bitmap>() { @Override public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { //加载完成后的处理 imageView.setImageBitmap(resource); } }); |
2、方法二:加载过程中监听
和上面的比较类似,也包含onResourceReady为Drawable、Bitmap两种形式。RequestListener表示请求过程中间的监听,他仅有这两个回调方法:onException方法表示加载异常,即请求图片发生异常回调;onResourceReady表示加载图片完成后回调。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | Glide.with(mContext) .load( "url" ) .listener( new RequestListener<String, GlideDrawable>() { @Override public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { return false ; } @Override public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { return false ; } }) .into(imageView); Glide.with(mContext) .load( "url" ) .asBitmap() .listener( new RequestListener<String, Bitmap>() { @Override public boolean onException(Exception e, String model, Target<Bitmap> target, boolean isFirstResource) { return false ; } @Override public boolean onResourceReady(Bitmap resource, String model, Target<Bitmap> target, boolean isFromMemoryCache, boolean isFirstResource) { return false ; } }) .into(imageView); } |
3、方法三:设置图片中监听
如果说方法一、方法二回调的接口数偏少,不能完全满足要求,那么方法三可谓丰富,用包含了如下方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Glide.with(mContext) .load( "url" ) .into( new GlideDrawableImageViewTarget(imageView) { @Override public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> animation) { super .onResourceReady(resource, animation); } }); Glide.with(mContext) .load( "url" ) .asBitmap() .into( new BitmapImageViewTarget(imageView) { @Override public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { super .onResourceReady(resource, glideAnimation); } }) ; |
以上三种方法第一种最常用,后面两种方法不太常用,尤其是第三种,回调方法特别多
下面看看项目中的用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Glide.with(ThinksnsActivity. this .getApplicationContext()).load(img_url).diskCacheStrategy(DiskCacheStrategy.ALL).into( new GlideDrawableImageViewTarget(iv_launcher) { @Override public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) { super .onResourceReady(resource, glideAnimation); Log.i( "走程序" , "图图下载完了" ); PreferenceUtils.put( "launcher_pic_is_download" , launcher_pic_is_download); } @Override public void onLoadFailed(Exception e, Drawable errorDrawable) { Log.i( "走程序" , "图图下载完了没?---失败" ); } } );<br><br>leilei tua |
这样就可以处理下载完图片的逻辑了
分类:
Android
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战