我正在使用以下方法从 URL 下载图像
private Bitmap getBitmap(String url)
{
File f=fileCache.getFile(url);
Log.d("getBitmap", "getBitmap"+url);
//from SD cache
Bitmap b = decodeFile(f);
if(b!=null)
return b;
//from web
try {
Bitmap bitmap=null;
URL imageUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection)imageUrl.openConnection();
conn.setConnectTimeout(30000);
conn.setReadTimeout(30000);
conn.setInstanceFollowRedirects(true);
InputStream is=conn.getInputStream();
OutputStream os = new FileOutputStream(f);
Utils.CopyStream(is, os);
os.close();
bitmap = BitmapFactory.decodeStream(is);
return bitmap;
} catch (Exception ex){
ex.printStackTrace();
return null;
}
}
对我来说,这种方法适用于与图像对应的所有 URL 但问题是它不适用于以下
http://downloads.hyperin.com/hyperin-portal/imageserver/news/13442/ginatricot.jpg
适用于以下网址
http://downloads.hyperin.com/hyperin-portal/imageserver/news/12042/Myfit_liity_nyt.jpg
为了调试,我在浏览器中打开图像并将其下载到我的电脑上,检查其属性并发现这是 32 位图像,其他成功下载的图像是 24 位的。我不知道为什么相同的代码无法下载成功下载 24 位图像的 32 位图像。我的代码遗漏了什么?android 不支持 32 位图像吗?或者是什么?请建议我找出解决方案