Как получить растровое изображение из URL-адреса в андроиде?
У меня есть uri, который имеет изображение
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);
}
Ответ 2
Это должно сделать трюк:
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
Не забудьте добавить разрешение Интернета в манифест.
Ответ 3
Итак, вы пытаетесь получить растровое изображение из файла? Заголовок говорит URL. В любом случае, когда вы получаете файлы с внешнего хранилища в Android, вы никогда не должны использовать прямой путь. Вместо этого вызовите getExternalStorageDirectory() следующим образом:
File bitmapFile = new File(Environment.getExternalStorageDirectory() + "/" + PATH_TO_IMAGE);
Bitmap bitmap = BitmapFactory.decodeFile(bitmapFile);
getExternalStorageDirectory() предоставляет вам путь к SD-карте.
Также вам нужно объявить разрешение WRITE_EXTERNAL_STORAGE в манифесте.