Now a lot of apps are opened as a viewpager, then you can slide with your fingers, each slide once to change a picture, there will be a circle at the bottom to say that now slide to Chapter ~
Usually these pictures are to put the function of the introduction or use of teaching and so on, my demand is very simple, is mentioned above.
There are two ways, one is to find an existing suite, look up a bunch of data each and I recommend viewpagerindicator this set, I have seen this set, but it seems to need to have fragment plus Google Play example seems to be loaded, so have to do it yourself.
Viewpager's implementation can refer to the code in the Android Viewpager use details:
@Overrideprotected void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate);
Setcontentview (R.layout.activity_intro);
Mviewpager = (Viewpager) Findviewbyid (R.id.viewpager);
Final Layoutinflater minflater = Getlayoutinflater (). from (this);
View v1 = minflater.inflate (r.layout.intro_layout_1, NULL);
View v2 = minflater.inflate (r.layout.intro_layout_2, NULL);
View v3 = minflater.inflate (r.layout.intro_layout_3, NULL);
View v4 = minflater.inflate (r.layout.intro_layout_4, NULL);
Viewlist = new arraylist<view> ();
Viewlist.add (v1);
Viewlist.add (v2);
Viewlist.add (v3);
Viewlist.add (v4);
Mviewpager.setadapter (New Myviewpageradapter (viewlist));
Mviewpager.setcurrentitem (0);}
Myviewpageradapter public class Myviewpageradapter extends Pageradapter {private list<view> mlistviews;
Public Myviewpageradapter (list<view> mlistviews) {this.mlistviews = Mlistviews; @Override public void Destroyitem (ViewGroup contaIner, int position, object object) {Container.removeview (View object); @Override public Object Instantiateitem (viewgroup container, int position) {View view = Mlistviews.get (Positi
ON);
Container.addview (view);
return view;
@Override public int GetCount () {return mlistviews.size ();
@Override public boolean isviewfromobject (View arg0, Object arg1) {return arg0==arg1;
}}
You're going to have a viewpager.
Let's take a specific look at the usage of Viewpager:
First, Viewpager create steps
① Add Android.support.v4.view.ViewPager to XML layout
② load the displayed page card to convert the layout layout to a View object
(1)
Layoutinflater LF Getlayoutinflater (this);
Lf.inflate (Resource,root);
(2)
View.inflate (Context,resource,root);
③ Configuration adapter (three kinds of adapter)
(1) Pageradapter Data Source:list<view>
(2) Fragmentpageradapter Data Source:list<fragment>
(3) Fragmentstatepageradapter Data Source:list<fragment>
Second, the code example
new four fragment and their layout the following is the mainactivity XML layout:
<android.support.v4.view.viewpager
android:id= "@+id/pager"
android:layout_width= "Match_parent"
android:layout_height= "Match_parent"
android:layout_gravity= "center" >
< Android.support.v4.view.PagerTabStrip
android:id= "@+id/tab"
android:layout_width= "Wrap_content"
android:layout_height= "Wrap_content"
android:layout_gravity= "Top" >
</ Android.support.v4.view.pagertabstrip>
<!--bottom display title and top display cannot appear at the same time
< Android.support.v4.view.PagerTitleStrip
android:id= "@+id/title"
android:layout_width= "Wrap_content"
android:layout_height= "wrap_content"
android:layout_gravity= "Bottom" >
</ android.support.v4.view.pagertitlestrip>
-->
</android.support.v4.view.ViewPager>
The first kind of pageradapter
public class Mypageradapter extends Pageradapter {private list<view> viewlist;
Private list<string> titlelist;
Public Mypageradapter (list<view> viewlist,list<string> titlelist) {this.viewlist = viewList;
This.titlelist = titlelist;
/** * Returns the number of page cards * * @Override public int GetCount () {return viewlist.size (); /** * View is from Object/@Override public boolean isviewfromobject (view arg0, Object arg1) {return arg0==
Arg1; /** * Instantiate a page card */@Override public Object instantiateitem (viewgroup container, int position) {container
. AddView (Viewlist.get (position));
return Viewlist.get (position);
/** * Destroy a page card */@Override public void Destroyitem (ViewGroup container, int position, object) {
Container.removeview (Viewlist.get (position)); /** * Set Viewpager title * * @Override public charsequence getpagetitle (int position) {return titlelist.ge T (position);
}
}
The second kind of fragmentpageradapter
public class Myfragmentpageradapter extends Fragmentpageradapter {
private list<fragment> fraglist;
Private list<string> titlelist;
Public Myfragmentpageradapter (Fragmentmanager fm,list<fragment> fraglist,list<string> titleList) {
Super (FM);
This.fraglist = fraglist;
This.titlelist = titlelist;
}
@Override public
Fragment getitem (int arg0) {return
fraglist.get (arg0);
}
@Override public
charsequence getpagetitle (int position) {return
titlelist.get (position);
}
@Override public
int GetCount () {return
fraglist.size ();
}
}
The third type of fragmentstatepageradapter (this adapter can dynamically destroy fragment)
public class MyFragmentPagerAdapter2 extends Fragmentstatepageradapter {//The adapter can dynamically destroy P
Rivate list<fragment> fraglist;
Private list<string> titlelist;
Public MyFragmentPagerAdapter2 (Fragmentmanager fm,list<fragment> fraglist,list<string> titlelist) {
Super (FM);
This.fraglist = fraglist;
This.titlelist = titlelist;
@Override public Fragment getitem (int arg0) {return fraglist.get (arg0);
@Override public charsequence getpagetitle (int position) {return titlelist.get (position);
@Override public int GetCount () {return fraglist.size ();
@Override public Object Instantiateitem (viewgroup arg0, int arg1) {return Super.instantiateitem (arg0, arg1); @Override public void Destroyitem (ViewGroup container, int position, object object) {Super.destroyitem (conta
Iner, Position, object); }
}
Mainactivity use Getsupportfragmentmanager () the activity must inherit fragmentactivity:
public class Mainactivity extends fragmentactivity implements onpagechangelistener{private list<view> viewlist;
Private list<string> titlelist;
Private Viewpager Pager;
Private Pagertabstrip tab;//The top of the title private list<fragment> fraglist;
@Override protected void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate);
Setcontentview (R.layout.activity_main);
Viewlist = new arraylist<view> ();
Titlelist = new arraylist<string> ();
tab = (Pagertabstrip) Findviewbyid (R.id.tab);
View view1 = view.inflate (this,r.layout.view1,null);
View view2 = view.inflate (this,r.layout.view2,null);
View view3 = view.inflate (this,r.layout.view3,null);
View view4 = view.inflate (this,r.layout.view4,null);
Viewlist.add (View1);
Viewlist.add (VIEW2);
Viewlist.add (VIEW3);
Viewlist.add (VIEW4);
Fraglist = new arraylist<fragment> ();
Fraglist.add (New Fragment1 ()); Fraglist.add (New FragmeNt2 ());
Fraglist.add (New Fragment3 ());
Fraglist.add (New Fragment4 ());
Set the title Titlelist.add ("first page") for the Viewpager page card;
Titlelist.add ("second page");
Titlelist.add ("third page");
Titlelist.add ("fourth page");
Set some properties for Pagertabstrip Tab.setbackgroundcolor (color.white);
Tab.setdrawfullunderline (FALSE);
Tab.settabindicatorcolor (Color.Blue);
Pager = (Viewpager) Findviewbyid (R.id.pager);
Mypageradapter adapter = new Mypageradapter (viewlist,titlelist);
Myfragmentpageradapter adapter = new Myfragmentpageradapter (Getsupportfragmentmanager (), fraglist, titleList); /** * Use Getsupportfragmentmanager () the activity must inherit fragmentactivity * * MyFragmentPagerAdapter2 adapter = new My
FragmentPagerAdapter2 (Getsupportfragmentmanager (), fraglist, titlelist);
Pager.setadapter (adapter);
Pager.setonpagechangelistener (this); @Override public void onpagescrollstatechanged (int arg0) {} @Override the public void onpagescrolled (int arg0, float arg1,int arg2) {} @Override public void onpageselected (int arg0) {Toast.maketext (this, "is currently the first" + (ARG0+1) + "interface", 0). s
how ();
}
}