bukka.wh
bukka.wh

Reputation: 913

ViewPager with FragmentPagerAdatper and big amount of images

I have ViewPager and FragmentPagerAdapter and I want to show a big amount of images with good quality. I have custom FragmentPagerAdapter and I put into it array with paths to images and then i am creating fragment for every image. The problem is in that when I have a lot of images scrolling between ViewPager items becomes too slow. What are the ways to make fast scrolling?

  1. Resize images in a separate thread?
  2. Use FragmentStatePagerAdapter?
  3. Something else?

Upvotes: 0

Views: 1459

Answers (1)

Shahidul
Shahidul

Reputation: 3037

You can use PagerAdapter override destroyItem it works well for huge images:

private class ImagePagerAdapter extends PagerAdapter{

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

        @Override
        public boolean isViewFromObject(View view, Object obj) {
            return obj.equals(view);
        }

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

        @Override
        public Object instantiateItem(ViewGroup view, int position) {
            View imageLayout = getLayoutInflater().inflate(R.layout.item_pager_image, view, false);
            ImageView imageView = (ImageView) imageLayout.findViewById(R.id.image);
            // set up imageView
            view.addView(imageLayout, 0);
            return imageLayout;
        }
    }

Upvotes: 2

Related Questions