-1

I'm creating an app just like instagram and I want to show images and videos in viewpager just like instagram does.

I'm getting images and videos from server and I want to show those in viewpager.

This is how I'm showing images for my posts in viewpager.

public class PostImageViewAdapter extends PagerAdapter {

private Context context;
private ArrayList<String> strUrls;

public PostImageViewAdapter(ArrayList<String> strUrls, Context context) {
    this.strUrls = strUrls;
    this.context = context;
}

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

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

@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
    ImageView postImage = new ImageView(context);
    VideoView postVideo = new VideoView(context);
    Glide.with(context)
            .load(strUrls.get(position))
            .into(postImage);
    postImage.setScaleType(ImageView.ScaleType.FIT_XY);
    container.addView(postImage);
    return postImage;
}

@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {

    container.removeView((View) object);
}

}

its working perfectly but I don't know how to show videos when there is a video and an image in a post and that need to be shown in same viewpager. I used this viewpager in a recyclerview.

please guide me how to achieve this.

Nabeel Ahmed
  • 223
  • 5
  • 15

1 Answers1

0

Use page transformer with your view pager

viewPager.setPageTransformer(false, CustomPageTransformer())

Here is the code for CustomPageTransformer class

public class CustomPageTransformer implements ViewPager.PageTransformer {
    @Override
    public void transformPage(@NonNull View page, float position) {
        // Rotate the fragment on the left or right edge
        page.setPivotX( position < 0f ? page.getWidth() : 0f );
        page.setPivotY( page.getHeight() * 0.5f );
        page.setRotationY( 50f * position );
    }
}
ashujhaji
  • 1
  • 1