Code Bye

关于Bitmap压缩缓存的问题


本人刚入门新手一枚。今天在练习bitmap内存缓存和本地缓存
使用到Bitmapfactory.Options 的时候遇到了一点问题,
在Options设置之后无法获取到bitmap
代码如下:
private Bitmap downloadBitmap(String imageUrl) {
HttpURLConnection conn = null;
try {
URL url = new URL(imageUrl);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod(“GET”);
conn.setConnectTimeout(5 * 1000);
conn.setReadTimeout(5 * 1000);
if (conn.getResponseCode() == 200) {
//Bitmap bitmap = BitmapFactory.decodeStream(conn.getInputStream());
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeStream(conn.getInputStream(), null, options);
options.inSampleSize = calculateInSampleSize(options,
PixelUtils.dip2px(context, 200), PixelUtils.dip2px(context, 250));
options.inPreferredConfig = Config.RGB_565;
options.inJustDecodeBounds = false;
Bitmap bitmap = BitmapFactory.decodeStream(conn.getInputStream(), null,options);
if (bitmap != null) {
return bitmap;
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (conn != null) {
conn.disconnect();
}
}
return null;
}
}
本人看了下别的资料,问题可能出在 conn.getInputStream()只能调用一次。有 办法解决吗
代码有点乱不好调,将就看一下哈
求高手不吝赐教,感激不尽。

解决方案

40

没用过这个,没有其他的重载方法呢?你已经获取了bitmap的,把这个当参数丢进去可以的不?

80

可以先把文件内容下载下来放到本地,再执行decode,本地文件随便你打开多少次

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于Bitmap压缩缓存的问题