Android ImageView: resolveUri failed on bad bitmap uri

发布时间:2022-06-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Android ImageView: resolveUri failed on bad bitmap uri脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

如有错误欢迎指正

        想把网络的图片加载到自己的image view里面,所以用imageView.setImageURI(uri);   但是运行的时候没有加载图片,看LOGcat发现了标题的报错,上网搜了一下,突然醒悟,Uri本身就有别与URL,Uri是用来加载本地路径的,所以不能用imageView.setImageURI(uri);这个方法

        我们用AndROId中的一个服务叫 Picasso

        在build:gradle中的dePEndencies中添加一个依赖

implementation 'com.squareup.picasso:picasso:2.5.2'

Android ImageView: resolveUri failed on bad bitmap uri

然后可以直接在代码中用

//FirstUrl 是一个图片的网络地址,second是一个imageview

Picasso.get(context).load(firstUrl).into(second);

Android ImageView: resolveUri failed on bad bitmap uri

        在写的时候遇到一个问题,Picasso爆红,找了好久原因觉得可能是我先在类中调用了Picasso的方法,后写的依赖。我把Picasso.get(context).load(firstUrl).into(second);删掉重新写了一遍它就不爆红了。。。

        但这可能是运气,你们修改了依赖之后注意编译器有没有提示,点击sync now

Android ImageView: resolveUri failed on bad bitmap uri

         点击之后爆红就消失

Android ImageView: resolveUri failed on bad bitmap uri

        但是程序运行的时候会报错

Android ImageView: resolveUri failed on bad bitmap uri

         他说我第81行写错了(在排错的过程中我使用了更新版本的picasso,所以这里换了种用法,如果你也要用这个用法,就把依赖中的语句改成implementation 'com.squareup.picasso:picasso:2.71828')

Android ImageView: resolveUri failed on bad bitmap uri

         我们把这个语句写到异步类的另一个函数去

Android ImageView: resolveUri failed on bad bitmap uri

        再次运行,解决

Android ImageView: resolveUri failed on bad bitmap uri

         根据现象总结经验,异步就是为了耗时操作,所以刚才的对json数据的加载和解析看成是一个耗时操作,我们接下来的这个Picasso操作是另一个操作,而这个操作是建立在上一个操作的基础之上的,我们应该保证上一个操作完成之后再做这个操作,如果你把这两个操作都放在doInBackground方法中,就没办法保证他们的同步性,所以AsyncTask给我们提供了几个不同的函数可以控制前后顺序,这个onPostExecute函数就是得等到doInBackground函数执行完毕之后才执行的,所以把Picasso操作写在这个函数之中。

脚本宝典总结

以上是脚本宝典为你收集整理的Android ImageView: resolveUri failed on bad bitmap uri全部内容,希望文章能够帮你解决Android ImageView: resolveUri failed on bad bitmap uri所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。