2016-12-19 3 views
0

Я нашел this tutorial «Как загрузить ImageView по URL в Android», который отлично подходит для меня, но в моем случае я не хочу просто устанавливать несколько изображений, но список тогда, у меня есть Api RestFull, который возвращает некоторые строки и URL-адрес изображения, как я видел в этом учебнике, он использует AsyncTask для загрузки изображения и установки внутри ImageView. В моем случае я уже использую AsyncTask для извлечения из мой API, мне нужно, чтобы что-то внутри моего ModelClass было автоматически загружено?Как установить изображения внутри ImageView по URL-адресу Android

Это то, что у меня есть ...

public void getAdsUser(final Activity context){ 
    new AsyncTask<Void, Void, String>() { 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
     } 
     @Override 
     protected String doInBackground(Void... voids) { 
      try { 
       Response = new WebBase().getUserAds(context); 
       if(Response.equals("NODATA")){ 
        return "NODATA"; 
       } 
       if (Response.equals("EMPTY")){ 
        return "EMPTY"; 
       } 
       if (Response.isEmpty()){ 
        return "ERROR"; 
       } 
       else { 
        return "OK"; 
       } 
      } catch (IOException e) { 
       e.printStackTrace(); 
       return "ERROR"; 
      } 
     } 
     @Override 
     protected void onPostExecute(String s) { 
      super.onPostExecute(s); 
      switch (s){ 
       case "NODATA": 
        GenericAlertDialog.MakeDialog(UserAds.this,R.string.NODATA); 
        break; 
       case "ERROR": 
        GenericAlertDialog.MakeDialog(UserAds.this,R.string.Error_Internet); 
        break; 
       case "EMPTY": 
        isVisible_ads.setVisibility(View.VISIBLE); 
        break; 
       case "OK": 
        UserModelView[] modelArray = new Gson().fromJson(Response,UserModelView[].class); 
        List<UserModelView> userModelView = new ArrayList<>(Arrays.asList(modelArray)); 
        adapterUserView.add(userModelView); 
        recyclerView.setAdapter(adapterUserView); 
        break; 
      } 
     } 
    }.execute(); 
} 

Спасибо!

+0

Использование Glide. - https://github.com/bumptech/glide –

ответ

4

Сделайте вашу жизнь намного проще и используйте Picasso.

загрузки изображений может быть простым один лайнер

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);

видеть больше на сайте http://square.github.io/picasso/

+0

Я был наполовину рекомендую то же самое. –

+0

Не могли бы вы помочь мне с моим адаптером? Мой адаптер немного отличается от обычного. –

1

Вот некоторые комплементарной о том, почему с помощью Пикассо является лучшим решением от того, что Стивен предложить. Есть много вещей, которые вам нужно учитывать как память, кеширование и т. Д. Picasso обрабатывает всю тяжелую работу для вас, пока вы ее правильно программируете, и это очень простое в использовании.

2

Вы должны добавить библиотеку Picasso в свой проект и написать код следующим образом.

Picasso.with(context).load("image url").into("ImageView where you have to load image");