我正在用 android 开发一个应用程序,但在显示从 http 服务器下载的一些图像时遇到了问题。这是下载的代码:
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(URI.create(imageURL));
httpGet.addHeader(BasicScheme.authenticate(new UsernamePasswordCredentials("user", "password"), "UTF-8", false));
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity responseEntity = httpResponse.getEntity();
InputStream input = responseEntity.getContent();
// Get the bitmap
Options opt = new Options();
opt.inScaled = true;
opt.inDensity = 1;
opt.inTargetDensity = 1;
opt.inPreferQualityOverSpeed = false;
opt.inPurgeable = true;
opt.inSampleSize = 2;
Bitmap myBitmap = BitmapFactory.decodeStream(input, null, opt);
// Save the bitmap to the file
String path = SMVAndroid.IMAGE_PATH;
OutputStream fOut = null;
File file = new File(path, fileName.concat(".jpeg"));
fOut = new FileOutputStream(file);
/*int byteRead;
while((byteRead = input.read()) != -1){
fOut.write(byteRead);
}*/
myBitmap.compress(Bitmap.CompressFormat.JPEG, 85, fOut);
fOut.flush();
fOut.close();
使用此方法无法下载某些图像,因此我尝试了注释代码并且它确实下载了,但我无法在 ImageView 组件上显示它。我试图查看图像是否采用不同的格式(尽管有扩展名)并使用名为 trid 的程序(http://mark0.net/soft-trid-e.html)我发现图像不起作用的被标识为 jpeg-exif,而起作用的只是 jpeg。我已经在我的 PC 中下载了图像并使用程序来读取 exif 信息,而那些有效的则没有任何信息。我已经断定问题可能是这个信息,但是当我用安卓手机拍照时,它也将这个信息保存在文件中,所以我不知道这个问题可能是什么。我也尝试在android浏览器中查看图像,但它不起作用。它也不适用于本机图像查看器。我可以设法在 Android 的 chrome 浏览器中看到图像,但是当我尝试使用浏览器下载它们时,它不会下载。有谁知道问题是exif吗?我在这里上传了图片: http://img407.imageshack.us/img407/5977/1007e.jpg