Как использовать ArrayList в ViewPager? - PullRequest
0 голосов
/ 24 июня 2019

Я работаю над приложением, которое извлекает изображения из SDCard и загружает их в viewpager.Я получаю изображения в виде сетки. Я хочу открыть viewPager с тем же изображением при нажатии на изображение.Как загрузить изображения в viewpager?

У меня есть ArrayList со всеми изображениями, отображаемыми в сетке. Я могу открыть viepager при нажатии на изображение, но соответствующее изображение не открывается.

Это мой адаптер

public class GalleryAdapter extends BaseAdapter {

    private Context ctx;
    private int pos;
    private LayoutInflater inflater;
    private ImageView ivGallery;
    ArrayList<Uri> mArrayUri;
    public GalleryAdapter(Context ctx, ArrayList<Uri> mArrayUri) {

        this.ctx = ctx;
        this.mArrayUri = mArrayUri;
    }

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

    @Override
    public Object getItem(int position) {
        return mArrayUri.get(position);
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        pos = position;
        inflater = (LayoutInflater) ctx
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View itemView = inflater.inflate(R.layout.gv_item, parent, false);
        ivGallery = (ImageView) itemView.findViewById(R.id.ivGallery);
        ivGallery.setImageURI(mArrayUri.get(position));
        return itemView;
    }
}
public class ImagePageAdapter extends PagerAdapter {

    private List<ImageView> images;

    public ImagePageAdapter(List<ImageView> images) {
        this.images = images;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        ImageView imageView = images.get(position);
        container.addView(imageView);
        return imageView;
    }

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

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

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

1 Ответ

0 голосов
/ 24 июня 2019

Ваша индексация пейджера не выполняется должным образом. Пожалуйста, следуйте этому -

http://codetheory.in/android-image-slideshow-using-viewpager-pageradapter/

Вместо нарисованных идентификаторов, вы используете URL-адрес изображения для загрузки изображения. Используйте скольжение и т. Д. Для загрузки изображения.

...