java - Merge PageViewer fragments on rotation from vertical to horizontal -


i'm working on android application displays 2 images in separate fragments using pageviewer. wondering how can possibly merge 2 fragments same screen, or place them side side on rotation of screen. similar first image below, expect due page rotation, , not device type:

building flexible ui

ideally, merge 2 images onto 1 fragment if fit. should done using if statement? code i'm using similar android screen slide demo:

main activity:

package com.example.android.animationsdemo;  import android.app.fragment; import android.app.fragmentmanager; import android.content.intent; import android.os.bundle; import android.support.v13.app.fragmentstatepageradapter; import android.support.v4.app.fragmentactivity; import android.support.v4.app.navutils; import android.support.v4.view.pageradapter; import android.support.v4.view.viewpager; import android.view.menu; import android.view.menuitem;  /**  * demonstrates "screen-slide" animation using {@link viewpager}. because {@link viewpager}  * automatically plays such animation when calling {@link viewpager#setcurrentitem(int)}, there  * isn't animation-specific code in sample.  *  * <p>this sample shows "next" button advances user next step in wizard,  * animating current screen out (to left) , next screen in (from right).  * reverse animation played when user presses "previous" button.</p>  *  * @see screenslidepagefragment  */ public class screenslideactivity extends fragmentactivity {     /**      * number of pages (wizard steps) show in demo.      */     private static final int num_pages = 5;      /**      * pager widget, handles animation , allows swiping horizontally access previous      * , next wizard steps.      */     private viewpager mpager;      /**      * pager adapter, provides pages view pager widget.      */     private pageradapter mpageradapter;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_screen_slide);          // instantiate viewpager , pageradapter.         mpager = (viewpager) findviewbyid(r.id.pager);         mpageradapter = new screenslidepageradapter(getfragmentmanager());         mpager.setadapter(mpageradapter);         mpager.setonpagechangelistener(new viewpager.simpleonpagechangelistener() {             @override             public void onpageselected(int position) {                 // when changing pages, reset action bar actions since dependent                 // on page active. alternative approach have each                 // fragment expose actions (rather activity exposing actions),                 // simplicity, activity provides actions in sample.                 invalidateoptionsmenu();             }         });     }      @override     public boolean oncreateoptionsmenu(menu menu) {         super.oncreateoptionsmenu(menu);         getmenuinflater().inflate(r.menu.activity_screen_slide, menu);          menu.finditem(r.id.action_previous).setenabled(mpager.getcurrentitem() > 0);          // add either "next" or "finish" button action bar, depending on page         // selected.         menuitem item = menu.add(menu.none, r.id.action_next, menu.none,                 (mpager.getcurrentitem() == mpageradapter.getcount() - 1)                         ? r.string.action_finish                         : r.string.action_next);         item.setshowasaction(menuitem.show_as_action_if_room | menuitem.show_as_action_with_text);         return true;     }      @override     public boolean onoptionsitemselected(menuitem item) {         switch (item.getitemid()) {             case android.r.id.home:                 // navigate "up" demo structure launchpad activity.                 // see http://developer.android.com/design/patterns/navigation.html more.                 navutils.navigateupto(this, new intent(this, mainactivity.class));                 return true;              case r.id.action_previous:                 // go previous step in wizard. if there no previous step,                 // setcurrentitem nothing.                 mpager.setcurrentitem(mpager.getcurrentitem() - 1);                 return true;              case r.id.action_next:                 // advance next step in wizard. if there no next step, setcurrentitem                 // nothing.                 mpager.setcurrentitem(mpager.getcurrentitem() + 1);                 return true;         }          return super.onoptionsitemselected(item);     }      /**      * simple pager adapter represents 5 {@link screenslidepagefragment} objects, in      * sequence.      */     private class screenslidepageradapter extends fragmentstatepageradapter {         public screenslidepageradapter(fragmentmanager fm) {             super(fm);         }          @override         public fragment getitem(int position) {             return screenslidepagefragment.create(position);         }          @override         public int getcount() {             return num_pages;         }     } } 

screenslidefragment

package com.example.android.animationsdemo;  import android.app.fragment; import android.os.bundle; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.textview;  /**  * fragment representing single step in wizard. fragment shows dummy title indicating  * page number, along dummy text.  *  * <p>this class used {@link cardflipactivity} , {@link  * screenslideactivity} samples.</p>  */ public class screenslidepagefragment extends fragment {     /**      * argument key page number fragment represents.      */     public static final string arg_page = "page";      /**      * fragment's page number, set argument value {@link #arg_page}.      */     private int mpagenumber;      /**      * factory method fragment class. constructs new fragment given page number.      */     public static screenslidepagefragment create(int pagenumber) {         screenslidepagefragment fragment = new screenslidepagefragment();         bundle args = new bundle();         args.putint(arg_page, pagenumber);         fragment.setarguments(args);         return fragment;     }      public screenslidepagefragment() {     }      @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         mpagenumber = getarguments().getint(arg_page);     }      @override     public view oncreateview(layoutinflater inflater, viewgroup container,             bundle savedinstancestate) {         // inflate layout containing title , body text.         viewgroup rootview = (viewgroup) inflater                 .inflate(r.layout.fragment_screen_slide_page, container, false);          // set title view show page number.         ((textview) rootview.findviewbyid(android.r.id.text1)).settext(                 getstring(r.string.title_template_step, mpagenumber + 1));          return rootview;     }      /**      * returns page number represented fragment object.      */     public int getpagenumber() {         return mpagenumber;     } } 

any ideas how this?

1) have viewpager

2) set adapter viewpager

public class imagefragmentadapter extends fragmentpageradapter{      arraylist<string> images;     public imagefragmentadapter(fragmentmanager fm, arraylist<string> images) {         super(fm);         this.images = images;     }      @override     public fragment getitem(int position) {         imagefragment fragment = new imagefragment();         bundle bundle = new bundle();         bundle.putstring("image_url", images.get(position));         fragment.setarguments(bundle);         return fragment;     }      @override     public int getcount() {         return images.size();     } } 

3) each fragment image

public class imagefragment extends fragment{ view view; imageview ivimage; bundle bundle; string imageurl; @override public view oncreateview(layoutinflater inflater, @nullable viewgroup container, @nullable bundle savedinstancestate) {     view = inflater.inflate(r.layout.fragment_image, null);     ivimage = (imageview)view.findviewbyid(r.id.ivimagealbum);     bundle = getarguments();     if(bundle != null){         imageurl = bundle.getstring("image_url");         try{             imageloader.getinstance().displayimage(imageurl, ivimage, imageloadoption.options);         } catch(exception ex){             ex.printstacktrace();         }     }       return view; } 

4) using imageloader or picaso image lib show image hope you


Comments

Popular posts from this blog

IF statement in MySQL trigger -

c++ - What does MSC in "// appease MSC" comments mean? -

javascript - Blogger related post gadget image Resize s72-c [ Need Expert Help ] -