Работает ли ImageView.setImageURI(Uri uri) с удаленными файлами?

Можно ли загружать изображение с удаленного сервера с помощью ImageView.setImageURI(Uri uri)?

Ответ 1

Короткий ответ: нет! Он не может.

Вы можете использовать ImageView.setImageURI(Uri uri), например, если uri содержит ссылку на локальный файл. Например: файл:///sdcard/images/thumb.png

Ответ 2

Чтобы загрузить изображение из каталога, его сначала нужно преобразовать в Drawable. Вот фрагмент кода, который может помочь:

File file = new File ("/sdcard/1.jpg");

ImageView imageView = (ImageView) findViewById(R.id.icon);

imageView.setImageDrawable(Drawable.createFromPath(file.getAbsolutePath()));

Следует предупредить, что существует еще один метод для ImageView, называемый setImageURI(URI uri). Этот метод используется для загрузки внешних файлов; он не работает с типом File. Например, этот код не будет работать:

File file = new File ("/sdcard/1.jpg");

ImageView imageView = (ImageView) findViewById(R.id.icon);

imageView.setImageURI(Uri.fromFile(file));

Спасибо Мартину Виббельсу за этот пост.