2010-06-19 2 views
10

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

+3

Кстати, это 'ImageView.setImageURI (Uri uri)' ('URI'! =' Uri') - большая разница. – Felix

+1

Ты еще не пробовал? Я использовал [this] (http://stackoverflow.com/questions/844972/is-it-possible-to-put-an-image-from-a-url-in-a-imagebutton-in-android) подход. EDIT: [Здесь] (http://www.dreamincode.net/code/snippet4724.htm) еще один классный пример. – Macarse

+0

@ Феликс, спасибо. Я починил это. –

ответ

12

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

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

7

Чтобы загрузить изображение из каталога, его сначала нужно преобразовать в 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)); 

Благодаря Мартину Wibbels для this post.

+0

Этот последний пример кода действительно работает для меня (API-уровень 15 или около того). Возможно, это новая вещь. Но также обратите внимание, что аргумент 'setImageURI()' является 'Uri', а не' URI'. – LarsH

Смежные вопросы