画像のあるようなウリがあります
file:///mnt/...............
この uri を使用して画像を取得する方法ですが、null が返されます。どこが間違っているか教えてください。
Bitmap bitmap = BitmapFactory.decodeFile(uri.getPath());
Bitmap bitmap = BitmapFactory.decodeFile(uri.toString());
画像のあるようなウリがあります
file:///mnt/...............
この uri を使用して画像を取得する方法ですが、null が返されます。どこが間違っているか教えてください。
Bitmap bitmap = BitmapFactory.decodeFile(uri.getPath());
Bitmap bitmap = BitmapFactory.decodeFile(uri.toString());
これは、それを行うための簡単な 1 行の方法です。
try {
URL url = new URL("http://....");
Bitmap image = BitmapFactory.decodeStream(url.openConnection().getInputStream());
} catch(IOException e) {
System.out.println(e);
}
これでうまくいくはずです:
public static Bitmap getBitmapFromURL(String src) {
try {
URL url = new URL(src);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
return myBitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}
} // Author: silentnuke
マニフェストにインターネット許可を追加することを忘れないでください。
さて、ファイルからビットマップを取得しようとしていますか? タイトルにURLが記載されています。とにかく、Android で外部ストレージからファイルを取得する場合は、直接パスを使用しないでください。代わりに、次のように getExternalStorageDirectory() を呼び出します。
File bitmapFile = new File(Environment.getExternalStorageDirectory() + "/" + PATH_TO_IMAGE);
Bitmap bitmap = BitmapFactory.decodeFile(bitmapFile);
getExternalStorageDirectory() は、SD カードへのパスを提供します。また、マニフェストで WRITE_EXTERNAL_STORAGE 権限を宣言する必要があります。