Подтвердить что ты не робот

Как получить растровое изображение из URL-адреса в андроиде?

У меня есть uri, который имеет изображение

file:///mnt/...............

Как использовать этот uri для получения изображения, но он возвращает null, скажите, пожалуйста, где я ошибаюсь.

Bitmap bitmap = BitmapFactory.decodeFile(uri.getPath());
Bitmap bitmap = BitmapFactory.decodeFile(uri.toString());
4b9b3361

Ответ 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 в манифесте.