赞
踩
项目中使用Okhttp加载网络图片时,通过response.body().byteStream()获得InputStream流对象,
第一次需要用到该流去获得图片尺寸,而真正取图片显示时又使用了该流,当你去使用BitmapFactory.decodeStream(is, null, ops)获取bitmap时,bitmap总是null。
第一次读取InputStream对象后,第二次再读取时可能已经到Stream的结尾了(EOFException)或者Stream已经close掉了,此时的流的起始位置已经被移动。
而InputStream对象本身不能复制,因为它没有实现Cloneable接口。此时,可以先把InputStream转化成ByteArrayOutputStream,后面要使用InputStream对象时,再从ByteArrayOutputStream转化回来就好了。代码如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。