关于Picasso回调获取bitmap第一次加载失败的问题
来源:互联网 发布:烘焙成本核算软件 编辑:程序博客网 时间:2024/06/07 01:55
最近做一个功能的时候需要用到根据网络图片来获取bitmap再进行下载到本地,网络框架一直使用的是Picasso,那就直接想得就是根据回调来获取
Picasso.with(context).load(url).into(new Target() { @Override public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom from) { } @Override public void onBitmapFailed(Drawable errorDrawable) { } @Override public void onPrepareLoad(Drawable placeHolderDrawable) { } });
这个方法我想应该有很多人都会使用,我也是这么想的,确实也可以获取到bitmap,但是调试以后发了一个问发现第一次加载的时候并没有走onBitmapLoaded回调,导致我们第一次的时候无法显示图片。
后来发现问题出在Target上面,由于Picasso将target引用包装成了一个弱引用,当gc发生时target引用就很可能被回收从而无法回调。
那这个看来是走不通,接着看了一下Picasso后发现它听过了一个 get()方法
Bitmap bitmap = Picasso.with(context).load(url).get()
完美解决,只是要单开一个线程才可以,要是谁有更合适的方法希望告知,一起学习
阅读全文
0 0
- 关于Picasso回调获取bitmap第一次加载失败的问题
- Picasso获取得到的Bitmap
- Picasso使用问题记录 - 加载local camera image 失败
- Picasso图片加载回调
- 关于phonegap地理位置获取失败的问题
- Picasso加载头像问题
- 关于Ext的TreeStore会第一次默认加载的问题
- SDWebImage加载图片URL第一次失败,后面图片URL存在不刷新的问题
- 关于图片加载缓存框架Picasso的学习与使用
- 关于Picasso加载本地图片不显示的解决办法
- 关于hive 加载数据失败的问题 原因分析
- 关于bitmap回收的问题
- 关于bitmap的回收问题
- 解决Picasso加载图片出现闪烁的问题
- 关于fragment嵌套fragment,第一次能加载布局,第二次不能加载布局的问题
- 关于Glide加载圆形图片,第一次加载时出现不显示的问题
- 关于反射:获取类型失败的小问题
- 解决关于selenium 获取新页面元素失败的问题
- Ubuntu16.04下Sublime Text3安装Emmet等插件
- NetBeans 运行java web项目报错 build-impl.xml:1045: 尚未部署该模块
- 【React】React实现手风琴效果
- 中式Dao开源框架(MicroDao)
- $().tab() bootStrap中Tab页签切换
- 关于Picasso回调获取bitmap第一次加载失败的问题
- mybatis报错 There is no getter for property named 'xx' in 'class java.lang.String
- Wireshark抓包分析Yersinia 根据DHCP协议发送的伪造数据包攻击(sending RAW packet)
- 每天一个linux命令(15):tail 命令
- 使用Min Heap实现Top N Elements查找
- 2017/12/19
- 总结 2017.12.18
- 杭电acm Wooden Sticks
- QSFP+ SR4光模块布线小妙招