0

I am working on an image gallery, where I fetch all the images stored in the Android phone gallery into my application. Please find the link that I followed to develop that image gallery.

Get all images from Gallery into android application Programmatically

I have trying for hours to figure out how to create a full screen slideshow of images. I am able to achieve the full screen image, but it shows the same image all and always, even though the gallery has 3 images. I am using a ViewPagerAdapter to set the image in the adapter for showing the full screen preview. The image slider isn't working and I don't have an idea of why its not working. Please find the source code of what I have tried so far.

Model_images.java

public class Model_images{
String str_folder;
ArrayList<String> al_imagepath;

public String getStr_folder() {
    return str_folder;
}

public void setStr_folder(String str_folder) {
    this.str_folder = str_folder;
}

public ArrayList<String> getAl_imagepath() {
    return al_imagepath;
}

public void setAl_imagepath(ArrayList<String> al_imagepath) {
    this.al_imagepath = al_imagepath;
}
}

I followed the same exact tutorial, where I have given a link to the original source code. Even though I have given a link, I'm posting the source code of the ViewPager I tried.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gallery);
    ButterKnife.bind(this);

    setSupportActionBar(toolbar);

    gridView = (GridView)findViewById(R.id.gv_folder);
    int_position = getIntent().getIntExtra("value", 0);
    adapter = new GridViewAdapter(this, GalleryFragment.al_images,int_position);
    gridView.setAdapter(adapter);

    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            Bundle bundle = new Bundle();
            bundle.putInt("position", int_position);
            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
            SlideshowDialogFragment newFragment = SlideshowDialogFragment.newInstance();
            newFragment.setArguments(bundle);
            newFragment.show(ft, "slideshow");
        }
    });
}

Here is the SlideshowFragmentDialog to show the images in a slideview.

SLideShowFragmentDialog.java

public class SlideshowDialogFragment extends DialogFragment {

private String TAG = SlideshowDialogFragment.class.getSimpleName();
private ViewPager viewPager;
private MyViewPagerAdapter myViewPagerAdapter;
private int selectedPosition = 0;

static SlideshowDialogFragment newInstance() {
    SlideshowDialogFragment frag = new SlideshowDialogFragment();
    return frag;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_image_slider, container, false);
    viewPager = (ViewPager) v.findViewById(R.id.viewpager);

    //images = (ArrayList<Image>) getArguments().getSerializable("images");
    selectedPosition = getArguments().getInt("position");

    myViewPagerAdapter = new MyViewPagerAdapter();
    viewPager.setAdapter(myViewPagerAdapter);
    viewPager.addOnPageChangeListener(viewPagerPageChangeListener);

    setCurrentItem(selectedPosition);

    return v;
}

private void setCurrentItem(int position) {
    viewPager.setCurrentItem(position, false);
    displayMetaInfo(selectedPosition);
}

//  page change listener
ViewPager.OnPageChangeListener viewPagerPageChangeListener = new ViewPager.OnPageChangeListener() {

    @Override
    public void onPageSelected(int position) {
        displayMetaInfo(position);
    }

    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {

    }

    @Override
    public void onPageScrollStateChanged(int arg0) {

    }
};

private void displayMetaInfo(int position) {

    Model_images imagePath = GalleryFragment.al_images.get(position);
    Toast.makeText(getContext(), imagePath.toString(), Toast.LENGTH_SHORT).show();

}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setStyle(android.support.v4.app.DialogFragment.STYLE_NORMAL, android.R.style.Theme_Black_NoTitleBar_Fullscreen);
}

//  adapter
public class MyViewPagerAdapter extends PagerAdapter {

    private LayoutInflater layoutInflater;

    public MyViewPagerAdapter() {
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {

        layoutInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = layoutInflater.inflate(R.layout.activity_full_screen, container, false);

        ImageView imageViewPreview = (ImageView) view.findViewById(R.id.fullScreenImageView);

        Model_images image = GalleryFragment.al_images.get(position);

        Glide.with(getContext()).load(image.getAl_imagepath().get(position))
                .thumbnail(0.5f)
                .diskCacheStrategy(DiskCacheStrategy.NONE)
                .skipMemoryCache(true)
                .into(imageViewPreview);

        container.addView(view);

        return view;
    }

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

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


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

I am not posting the source code for the MainActivity and the Adapter classes, since I have given a link to the project directly. I followed the exact same link. If you still want me to post the source codes, I can edit the question and post the missing stuffs. I don't wanna make this post big with all the code base.

Thanks in advance. Any help is appreciated. Please help me on how to achieve full screen slideshow of images.

Ramji Seetharaman
  • 524
  • 4
  • 7
  • 24
  • 1
    May be this helpful to you... https://stackoverflow.com/questions/13796382/android-viewpager-as-image-slide-gallery[slideshow using view pager] – Manthan Patel Jul 29 '17 at 04:34
  • 1
    here is solution===> https://stackoverflow.com/questions/13796382/android-viewpager-as-image-slide-gallery – Manthan Patel Jul 29 '17 at 04:35

0 Answers0