A sliding menu that does not fill the entire page, or it can be an auto-swipe ad ~
Package View.example.viewpagerexample;import Java.util.arraylist;import Java.util.list;import Java.util.concurrent.atomic.atomicinteger;import Android.os.bundle;import Android.os.handler;import Android.os.message;import Android.support.v4.view.pageradapter;import Android.support.v4.view.viewpager;import Android.support.v4.view.viewpager.onpagechangelistener;import Android.util.displaymetrics;import Android.view.view;import Android.view.viewgroup;import Android.view.viewgroup.layoutparams;import Android.widget.imageview;import Android.widget.linearlayout;import Android.app.activity;public class MainActivity Extends Activity {private Viewpager adviewpager;private linearlayout pagerlayout;private list<view> pageViews; Private imageview[] imageviews;private ImageView imageview;private adpageadapter adapter;private Atomicinteger Atomicinteger = new Atomicinteger (0);p rivate boolean iscontinue = true; @Overrideprotected void OnCreate (Bundle Savedinstancestate) {super.oncreate (SavedinstancEState); Setcontentview (R.layout.main); Initviewpager ();} private void Initviewpager () {//Get Viewpager parent container from layout file Pagerlayout = (linearlayout) Findviewbyid (r.id.view_pager_ content);//Create Viewpageradviewpager = new Viewpager (this);//Get screen pixel related information displaymetrics dm = new Displaymetrics (); Getwindowmanager (). Getdefaultdisplay (). Getmetrics (DM);//depending on the screen information, set the Viewpager advertisement container's width and height adviewpager.setlayoutparams ( New Layoutparams (Dm.widthpixels,dm.heightpixels * 2/5));//Set Viewpager container to the parent container of the layout file Pagerlayout.addview (Adviewpager) ; Initpageadapter (); Initcirclepoint (); Adviewpager.setadapter (adapter); Adviewpager.setonpagechangelistener (new Adpagechangelistener ()); new Thread (New Runnable () {@Overridepublic void run () {while (true) {if (iscontinue) { Viewhandler.sendemptymessage (Atomicinteger.get ()); Atomicoption ();}}}). Start ();} private void Atomicoption () {atomicinteger.incrementandget (); if (Atomicinteger.get () > Imageviews.length-1) { Atomicinteger.getandadd (-5);} try {thread.sleep;} catch (Interruptedexception e) {}}/* * Toggle banner image at regular intervals */private final Handler Viewhandler = new Handler () {@Overridepublic void Handlemessage (Message msg {Adviewpager.setcurrentitem (msg.what); Super.handlemessage (msg);}}; private void Initpageadapter () {pageviews = new arraylist<view> (); ImageView img1 = new ImageView (this); Img1.setbackgroundresource (R.DRAWABLE.PIC1);p ageviews.add (IMG1); ImageView img2 = new ImageView (this); Img2.setbackgroundresource (R.drawable.pic2);p ageviews.add (IMG2); ImageView img3 = new ImageView (this); Img3.setbackgroundresource (R.DRAWABLE.PIC3);p ageviews.add (IMG3); ImageView img4 = new ImageView (this); Img4.setbackgroundresource (R.DRAWABLE.PIC4);p ageviews.add (IMG4); ImageView img5 = new ImageView (this); Img5.setbackgroundresource (R.DRAWABLE.PIC5);p ageviews.add (IMG5); ImageView img6 = new ImageView (this); Img6.setbackgroundresource (R.DRAWABLE.PIC6);p ageviews.add (IMG6); adapter = new Adpageadapter (pageviews);} private void Initcirclepoint () {ViewGroup group = (viewgroup) Findviewbyid (r.id.viewgroup); IMageviews = new Imageview[pageviews.size ()];//dot icon for (int i = 0; i < pageviews.size (); i++) {//Create a ImageView and Set the width height. Put the object into the array ImageView = new ImageView (this); Imageview.setlayoutparams (new Layoutparams (Ten)); Imageviews[i] = imageview;//initial value, default No. 0 Check if (i = = 0) {imageviews[i].setbackgroundresource (r.drawable.point_focused);} else {imageviews [I].setbackgroundresource (r.drawable.point_unfocused);} Place small dots into the layout group.addview (Imageviews[i]);}} /** * Viewpager page Change listener */private final class Adpagechangelistener implements Onpagechangelistener {/** * trigger when page scroll status changes */@Overridepublic void onpagescrollstatechanged (int arg0) {}/** * * when scrolling the page */@Overridepublic void onpagescrolled (int arg0, float arg1, int arg2) {}/** * page is selected when triggered */@Overridepublic void onpageselected (int arg0) {//Gets which page of the currently displayed page Atomicinte Ger.getandset (arg0);//reset Origin layout set for (int i = 0; i < imageviews.length; i++) {Imageviews[arg0].setbackgroundresource ( r.drawable.point_focused); if (arg0! = i) {Imageviews[i].setbackGroundresource (r.drawable.point_unfocused);}}} Private Final class Adpageadapter extends Pageradapter {private list<view> views = null;/** * Initializes the data source, which is the View array */publ IC Adpageadapter (list<view> views) {this.views = views;} /** * Delete The View object for the corresponding index in the collection from Viewpager */@Overridepublic void Destroyitem (view container, int position, object object) {(view Pager) container). Removeview (Views.get (position));} /** * Gets the number of Viewpager */@Overridepublic int getcount () {return views.size ();} /** * Gets the element of the corresponding index from the View collection and adds it to the Viewpager */@Overridepublic Object instantiateitem (view container, int position) {( Viewpager) container). AddView (Views.get (position), 0); return views.get (position);} /** * Whether to associate the displayed Viewpager page with the object returned by Instantiateitem This method is mandatory */@Overridepublic Boolean isviewfromobject (View view, Object object) {return view = = object;}}}
XML code:
<?xml version= "1.0" encoding= "Utf-8"? ><linearlayout xmlns:android= "http://schemas.android.com/apk/res/ Android "Android:layout_width=" Match_parent "android:layout_height=" match_parent "android:orientation=" vertical " > <relativelayout android:layout_width= "fill_parent" android:layout_height= "Fill_parent" and roid:layout_weight= "5" android:orientation= "vertical" > <linearlayout android:id= "@+id/view _pager_content "android:layout_width=" wrap_content "android:layout_height=" Wrap_content " android:orientation= "vertical"/> <linearlayout android:id= "@+id/viewgroup" Android:lay Out_width= "Fill_parent" android:layout_height= "wrap_content" android:layout_below= "@id/view_pager_co Ntent "android:layout_margintop=" -25px "android:gravity=" right "android:orientation=" Hori Zontal "> </linearlayout> </RelativeLayout> <linearlayout android:layout_width= "Fill_parent" Android:layout_heig ht= "Fill_parent" android:layout_weight= "2" android:background= "@color/white" android:orientation= "ver Tical "> </LinearLayout></LinearLayout>
Android Viewpager Sliding navigation menu