android - Adding multiple images to ViewPager -


i'm new android programming. i'd make simple app can browse few predefined images fullscreen. tried following tutorial:

https://developer.android.com/training/animation/screen-slide.html#viewpager

android bit complicated me .xml files resources etc. thought xml define individual resources, realized act html pages when want create view. managed display 1 image replacing second textview "textview" imageview in activity_screen_slide.xml.

but problem displays same image each page. how can set different 1 each page? tried add multiple linearlayouts different images, app crashed.

any ideas?

to show different image on each slide, you'll need add code defines correct image each page. since you're trying display few predefined images, i'm guessing you've loaded images project's drawable directory. assumption in mind, i'll walk through missing pieces in the example you're following.

if haven't done already, create screenslidepagefragment class, , modify code this:

public class screenslidepagefragment extends fragment { private static final string arg_resource_id = "resource_id"; private int id; // resource id of static image display in page  public screenslidepagefragment() {     // required empty public constructor }  // program should call create each instance of fragment. public static screenslidepagefragment newinstance(int id) {     screenslidepagefragment fragment = new screenslidepagefragment();     bundle args = new bundle();     args.putint(arg_resource_id, id);     fragment.setarguments(args);     return fragment; }  @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     if (getarguments() != null) {         id = getarguments().getint(arg_resource_id);     } }  @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) {     view view = inflater.inflate(r.layout.fragment_screen_slide_page, container, false);     // assign our image's resource id here     imageview imageview = (imageview) view.findviewbyid(r.id.image);     imageview.setimageresource(id);     return view; } 

because want each fragment display image different resource id, added parameter (id) can pass fragment when create it.

now, need make minor changes screenslidepageractivity. first, add static array contains drawable image resources want use. should this:

private static final int[] images = {r.drawable.image1, r.drawable.image2, r.drawable.image3, r.drawable.image4}; 

finally, modify pageradapter, getcount returns size of array, , getitem looks appropriate resource id each page before creating each slide's fragment.

private class screenslidepageradapter extends fragmentstatepageradapter {     public screenslidepageradapter(fragmentmanager fm) {         super(fm);     }      @override     public fragment getitem(int position) {         if (position < images.length)             return screenslidepagefragment.newinstance(images[position]);         else             return null;     }      @override     public int getcount() {         return images.length;     } } 

Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -