2014-07-17 3 views
0

Пробовал много способов в Интернете, но мое изображениеView по-прежнему отображает пустое изображение. Пожелайте получить изображение с URL-адреса (скачайте или отсылайте его), но, похоже, я что-то пропустил. Я активировал разрешение INTERNET в манифесте.Android: Загрузка ImageView из URL

icon.setImageResource(R.drawable.portrait_user); 

     try { 
      URL url = new URL("https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xpf1/t1.0-1/c0.0.50.50/p50x50/1499583_10202305028778787_1063740680_n.jpg"); 
      InputStream content = (InputStream)url.getContent(); 
      Bitmap d = BitmapFactory.decodeStream(content); 
      icon.setImageBitmap(d); 
     } catch (MalformedURLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
+1

Почему вы изобретаете колесо, а не используете одно из многих существующих, гораздо лучших решений? –

ответ

0

Выполнение сетевого ввода-вывода в основной прикладной нити, как это приведет к сбою приложения на Android 4.0+.

Скорее всего, вам будет лучше подаваться с использованием сторонней библиотеки, которая может загрузить изображение для вас в фоновом режиме и обновить ImageView, когда он будет готов. Picasso и Universal Image Loader - две из наиболее популярных библиотек для этого.

+0

Мне нужно загрузить только одно изображение, подумал, что я могу использовать код Android. –

+1

@shoujo_sm: Вы, безусловно, можете настроить свою собственную «AsyncTask», выполнив загрузку и работу «BitmapFactory» в 'doInBackground()' и заполнив свой «ImageView» в 'onPostExecute()'. У этого также есть проблемы, такие как устранение изменений конфигурации. Помимо этого, я бы предложил использовать 'Log.e()', а не 'printStackTrace()', чтобы ваши журналы были записаны в LogCat, чтобы вы могли их видеть. – CommonsWare

+0

Этот код может быть нигде не похож на основной поток. Если бы он был в основном потоке, он начинался бы с события в основном потоке, не так ли. – danny117

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