解決策を見つけました。これらの URL からの画像はデコードできますが、問題はサイズが大きすぎて極端に拡大され、表示されていないように見えることでした。
まず、次のような画像の説明をキャッチする必要があります。
options.inJustDecodeBounds = true;
BitmapFactory.decodeStream((InputStream)new URL(url).getContent(), null, options);
次に、必要な幅/高さにスケーリングします。reqHeight/reqWidth は必要なサイズ パラメーターです。
int height = options.outHeight;
int width = options.outWidth;
int inSampleSize;
if (height > reqHeight || width > reqWidth) {
if (width > height) {
inSampleSize = Math.round((float)height / (float)reqHeight);
}
else {
inSampleSize = Math.round((float)width / (float)reqWidth);
}
}
その後、質問からそのコードを繰り返すだけです:
Bitmap bitmap = null;
options.inJustDecodeBounds = false;
try {
bitmap = BitmapFactory.decodeStream((InputStream)new URL(imagePath).getContent(), null, options);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
これで、それをいくつかのディレクトリに保存できます。
File file = new File(some_path\image.png);
if (!file.exists() || file.length() == 0) {
file.createNewFile();
FileOutputStream fos = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.close();
fos.flush();
画像が保存され、それを取得して、image という ImageView に表示できます。
Bitmap bitmap = BitmapFactory.decodeFile(some_path\image.png);
image.setImageBitmap(bitmap);