Layout_xmlactivity_main.xml
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"Xmlns:tools="Http://schemas.android.com/tools"Android:layout_width="match_parent"Android:layout_height="match_parent"Tools:context=". Mainactivity"> <Android.support.v4.view.ViewPager Android:id="@+id/vp"Android:layout_width="match_parent"Android:layout_height="match_parent"/> <LinearLayout Android:id="@+id/dotcontaint"Android:layout_width="match_parent"Android:layout_height="wrap_content"android:gravity="Center"Android:layout_alignparentbottom="true"/> </RelativeLayout>
Dot_layout.xml
<?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"> <View Android:id="@+id/dotview"Android:layout_width="8DP"Android:layout_height="8DP"Android:layout_margin="10DP"Android:background="@drawable/dot_nomal"/></linearlayout>
Drawable_xmldot_focus.xml
<?xml version="1.0" encoding="utf-8"? ><shape xmlns : android="http://schemas.android.com/apk/res/android" > <solid android: color="#ff0000"/> <corners android:radius="8dip "/></shape>
Dot_nomal.xml
<?xml version="1.0" encoding="utf-8"? ><shape xmlns : android="http://schemas.android.com/apk/res/android" android:shape= " Rectangle"> <solid android:color="#ffffff"/> <corners android:radius="8dip"/></shape>
Mainactivity.java
Package Com.ch.day14_viewpagershape;import Java.util.arraylist;import java.util.timer;import Java.util.timertask;import Com.lidroid.xutils.bitmaputils;import Android.os.bundle;import Android.os.Handler; Import Android.app.activity;import Android.support.v4.view.pageradapter;import Android.support.v4.view.ViewPager; Import Android.view.layoutinflater;import android.view.menu;import Android.view.view;import Android.view.ViewGroup ; import Android.widget.imageview;import android.widget.imageview.scaletype;import android.widget.LinearLayout; Public classMainactivity extends Activity {PrivateViewpager VP; PrivateLinearLayout Dotcontaint; ArrayList<ImageView>IMGs; ArrayList<View>dots; intCount =0; intOlddotindex =0; //Picture Data Privatestring[] Image_url =Newstring[]{"http://pic8.nipic.com/20100701/5290458_114840036316_2.jpg", "http://img3.3lian.com/2013/s1/20/d/57.jpg", "http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg", "http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg"}; Handler h=NewHandler () { Public voidhandlemessage (android.os.Message msg) {Vp.setcurrentitem (count);//set the pager to be displayed this time//Toggle the selected dotsDots.Get(Olddotindex). Setbackgroundresource (R.drawable.dot_nomal);//sets the last selected dot to be uncheckedDots.Get(count). Setbackgroundresource (R.drawable.dot_focus);//sets the currently selected Dot as selectedOlddotindex =count; }; }; @Overrideprotected voidonCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate); Setcontentview (R.layout.activity_main); Init (); } Public voidinit () {VP=(Viewpager) Findviewbyid (R.ID.VP); Dotcontaint=(LinearLayout) Findviewbyid (r.id.dotcontaint); //Get network images, configure to Veiwpagergetimageviewlist (); //Get Polka Dotsgetdotlist (); //set the first dot as selectedDots.Get(0). Setbackgroundresource (R.drawable.dot_focus); Vp.setadapter (NewMyvpadapger ());//Configure Pager page//Auto-scrub effect via timerTimer timer =NewTimer (); Timer.schedule (NewTimerTask () {@Override Public voidRun () {count++;//Next Page if(Count = =4) {Count=0; } h.sendemptymessage (0x123);//in this thread, the UI main thread cannot be manipulated } }, the, -); } Private voidgetdotlist () {//TODO auto-generated Method StubDots =NewArraylist<view>(); //loop a picture array and create a corresponding number of dot for(intI=0; i<image_url.length;i++) {View View= Layoutinflater. from( This). Inflate (R.layout.dot_layout,NULL);//Loading LayoutsView dot = View.findviewbyid (R.id.dotview);//get the dot point component in the layout//Collect dotdots.add (dot); //add layouts to linear layoutsDotcontaint.addview (view); } } classMyvpadapger extends pageradapter{@Override Public intGetCount () {//TODO auto-generated Method Stub returnimgs.size (); } @Override Publicboolean isviewfromobject (View arg0, Object arg1) {//TODO auto-generated Method Stub returnarg0==arg1; } @Override Public voidDestroyitem (ViewGroup container,intPosition, ObjectObject) { //TODO auto-generated Method Stub//Super.destroyitem (container, Position, object);ImageView img = IMGs.Get(position); Container.removeview (IMG); } @Override PublicObject Instantiateitem (ViewGroup container,intposition) { //TODO auto-generated Method StubContainer.addview (IMGs.Get(position)); returnIMGs.Get(position); } } /** * Get image information on the web and assign it to ImageView*/ Private voidgetimageviewlist () {//TODO auto-generated Method StubIMGs =NewArraylist<imageview>(); Bitmaputils Btutil=NewBitmaputils ( This); //Loading Pictures for(intI=0; i<image_url.length;i++) {ImageView img=NewImageView ( This); Img.setscaletype (SCALETYPE.FIT_XY); Btutil.display (IMG, image_url[i]); Imgs.add (IMG); }} @Override Publicboolean Oncreateoptionsmenu (Menu menu) {//inflate the menu; This adds items to the action bar if it is present.getmenuinflater (). Inflate (R.menu.activity_main, menu); return true; }}
Viewpager Image Auto-Carousel Add Origin Point