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ブラウザでも画像を表示しようとしましたが、機能しません。ネイティブの画像ビューアでも機能しません。Androidのchromeブラウザで画像を見ることができましたが、ブラウザを使用してダウンロードしようとするとダウンロードされません。問題がexifであるかどうかは誰にもわかりますか?ここに画像をアップロードしました: http://img407.imageshack.us/img407/5977/1007e.jpg