2017-02-06 15 views
0

Я хочу динамически добавлять изображения в ViewPager, используя Glide Image Library. У меня есть CustomPagerAdapter Класс: -Динамически добавлять изображения в viewpager, содержащие ImageView (отдельные страницы)

public class CustomPagerAdapter extends PagerAdapter { 

    private Context mContext; 
    private LayoutInflater mLayoutInflater; 
    private List<DressDetailResult> mResources; 

    public CustomPagerAdapter(Context context, List<DressDetailResult> images) { 
     this.mContext = context; 
     this.mLayoutInflater = (LayoutInflater) mContext 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     this.mResources = images; 
    } 

    @Override 
    public int getCount() { 
     return this.mResources.size(); 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object object) { 
     return view == ((RelativeLayout) object); 
    } 

    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 
     View itemView = mLayoutInflater.inflate(R.layout.item_dress_detail_vertical_vp, container, false); 

     ImageView imageView = (ImageView) itemView.findViewById(R.id.item_dress_detail_vertical_vp_iv_dress); 

     DressDetailResult dressDetailResult = mResources.get(position); 

    Log.e("image url detail", " " + dressDetailResult.getImages()); 

     Glide.with(mContext).load(dressDetailResult.getImages()) 
       .diskCacheStrategy(DiskCacheStrategy.ALL) 
       .into(imageView); 

     container.addView(itemView); 

     return itemView; 
    } 

    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
     container.removeView((RelativeLayout) object); 
    } 
} 

И это моя модель класс работает с ДООСНАСТКОЙ 2,0: -

package com.webmavens.sherrihill.models.DressDetail; 

import java.util.List; 

import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 

public class DressDetailResult { 


    @SerializedName("images") 
    @Expose 
    private List<String> images = null; 


    public List<String> getImages() { 
     return images; 
    } 

    public void setImages(List<String> images) { 
     this.images = images; 
    } 

} 

Получение Urls изображений в списке, но не знает, как загрузить его в Glide даже я пытался загрузить, используя ниже код, но он загружает только одно изображение, а не добавлять еще одну страницу для следующей картинки:

List<String> stringList = dressDetailResult.getImages(); 

Glide.with(mContext).load(stringList.get(position)) 
       .diskCacheStrategy(DiskCacheStrategy.ALL) 
       .into(imageView); 

LogCat из массива ImageUrls является: -

[http://chandrajeet.com/wp-content/uploads/2015/02/3148608-lg.jpg, 
http://www.gettyimages.in/gi-resources/images/Embed/new/embed2.jpg, 
http://www.thinkstockphotos.in/ts-resources/images/home/TS_AnonHP_462882495_01.jpg, 
    http://hdwallpapershdpics.com/wp-content/uploads/2016/02/4237684-images.jpg] 

Я думаю, что он загружает весь массив в глиссирование, как я его индивидуализирую?

+0

Передайте список изображений в адаптере. mResources должен быть массивом или списком URL-адресов изображений. Тогда это сработает. –

+0

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

+0

делить конечную точку api –

ответ

0

Потому что вы используете instantiateItem для создания элемента для viewpager. Вам нужно объявить final для просмотра в этом методе, чтобы сохранить экземпляр страницы. Должно быть так:

final View itemView = mLayoutInflater.inflate(R.layout.item_dress_detail_vertical_vp, container, false); 

final ImageView imageView = (ImageView) itemView.findViewById(R.id.item_dress_detail_vertical_vp_iv_dress); 
... 
0

Убедитесь, что вы правильно установили библиотеку скольжения.

Все необходимые шаги можно найти в этом link.

Если вы проверили все коробочной интеграции библиотеки глиссады, то:

<uses-permission android:name="android.permission.INTERNET" /> 

Добавьте эту строку кода в файле манифеста для доступа в Интернет.

Дополнительно: Чтобы избежать очереди запросов, передайте контекст в класс приложения (Singleton Design Practice). Но так, чтобы вы знали, что ваш текущий контекст должен также выполнять требуемую работу.