布局
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" > 5 6 <android.support.v4.view.ViewPager 7 android:id="@+id/ViewPager1" 8 android:layout_width="match_parent" 9 android:layout_height="wrap_content" 10 android:layout_above="@+id/Container_PagerIndicator" > 11 </android.support.v4.view.ViewPager> 12 13 <LinearLayout 14 android:id="@+id/Container_PagerIndicator" 15 android:layout_width="fill_parent" 16 android:layout_height="wrap_content" 17 android:layout_above="@+id/Container_bottom" 18 android:layout_gravity="bottom" 19 android:gravity="center_horizontal" > 20 21 <ImageView 22 android:id="@+id/page0" 23 android:layout_width="wrap_content" 24 android:layout_height="wrap_content" 25 android:contentDescription="@null" 26 android:scaleType="matrix" 27 android:src="@drawable/page_now" /> 28 29 <ImageView 30 android:id="@+id/page1" 31 android:layout_width="wrap_content" 32 android:layout_height="wrap_content" 33 android:layout_marginLeft="10dp" 34 android:contentDescription="@null" 35 android:scaleType="matrix" 36 android:src="@drawable/page" /> 37 38 <ImageView 39 android:id="@+id/page2" 40 android:layout_width="wrap_content" 41 android:layout_height="wrap_content" 42 android:layout_marginLeft="10dp" 43 android:contentDescription="@null" 44 android:scaleType="matrix" 45 android:src="@drawable/page" /> 46 47 <ImageView 48 android:id="@+id/page3" 49 android:layout_width="wrap_content" 50 android:layout_height="wrap_content" 51 android:layout_marginLeft="10dp" 52 android:contentDescription="@null" 53 android:scaleType="matrix" 54 android:src="@drawable/page" /> 55 </LinearLayout> 56 57 <LinearLayout 58 android:id="@+id/Container_bottom" 59 android:layout_width="match_parent" 60 android:layout_height="wrap_content" 61 android:layout_alignParentBottom="true" 62 android:orientation="vertical" > 63 64 <Button 65 android:layout_width="match_parent" 66 android:layout_height="wrap_content" 67 android:text="@string/register" > 68 </Button> 69 70 <Button 71 android:layout_width="match_parent" 72 android:layout_height="wrap_content" 73 android:text="@string/login" > 74 </Button> 75 </LinearLayout> 76 77 </RelativeLayout>
代码
1 package com.wangzhen.myviewpager; 2 3 import java.util.ArrayList; 4 5 import com.lidroid.xutils.ViewUtils; 6 import com.lidroid.xutils.view.annotation.ContentView; 7 import com.lidroid.xutils.view.annotation.ViewInject; 8 9 import android.support.v4.view.PagerAdapter; 10 import android.support.v4.view.ViewPager; 11 import android.support.v4.view.ViewPager.OnPageChangeListener; 12 import android.support.v7.app.ActionBarActivity; 13 import android.view.LayoutInflater; 14 import android.view.View; 15 import android.view.Window; 16 import android.widget.ImageView; 17 import android.content.Context; 18 import android.os.Bundle; 19 20 @ContentView(R.layout.activity_main) 21 public class MainActivity extends ActionBarActivity implements 22 OnPageChangeListener { 23 Context mContext; 24 LayoutInflater mInflater; 25 26 @ViewInject(R.id.ViewPager1) 27 private ViewPager ViewPager1; 28 @ViewInject(R.id.page0) 29 private ImageView page0; 30 @ViewInject(R.id.page1) 31 private ImageView page1; 32 @ViewInject(R.id.page2) 33 private ImageView page2; 34 @ViewInject(R.id.page3) 35 private ImageView page3; 36 37 @Override 38 protected void onCreate(Bundle savedInstanceState) { 39 super.onCreate(savedInstanceState); 40 requestWindowFeature(Window.FEATURE_NO_TITLE); 41 ViewUtils.inject(this); 42 mContext = this; 43 ViewPager1.setOnPageChangeListener(this); 44 InflateViewPager(); 45 } 46 47 /** 48 * 填充ViewPager数据 49 */ 50 private void InflateViewPager() { 51 52 mInflater = LayoutInflater.from(mContext); 53 View view1 = mInflater.inflate(R.layout.pager1, null); 54 View view2 = mInflater.inflate(R.layout.pager2, null); 55 View view3 = mInflater.inflate(R.layout.pager3, null); 56 View view4 = mInflater.inflate(R.layout.pager4, null); 57 58 // 将View装入List中 59 final ArrayList<View> views = new ArrayList<View>(); 60 views.add(view1); 61 views.add(view2); 62 views.add(view3); 63 views.add(view4); 64 65 // 填充Pager的数据适配器 66 PagerAdapter mAdapter = new PagerAdapter() { 67 68 @Override 69 public boolean isViewFromObject(View arg0, Object arg1) { 70 return arg0 == arg1; 71 } 72 73 @Override 74 public int getCount() { 75 return views.size(); 76 } 77 78 @Override 79 public void destroyItem(View container, int position, Object object) { 80 ((ViewPager) container).removeView(views.get(position)); 81 } 82 83 @Override 84 public Object instantiateItem(View container, int position) { 85 ((ViewPager) container).addView(views.get(position)); 86 return views.get(position); 87 } 88 89 }; 90 91 ViewPager1.setAdapter(mAdapter); 92 } 93 94 @Override 95 public void onPageScrollStateChanged(int arg0) { 96 // TODO Auto-generated method stub 97 98 } 99 100 @Override 101 public void onPageScrolled(int arg0, float arg1, int arg2) { 102 // TODO Auto-generated method stub 103 104 } 105 106 @Override 107 public void onPageSelected(int arg0) { 108 switch (arg0) { 109 case 0: 110 page0.setImageDrawable(getResources().getDrawable( 111 R.drawable.page_now)); 112 page1.setImageDrawable(getResources().getDrawable(R.drawable.page)); 113 page2.setImageDrawable(getResources().getDrawable(R.drawable.page)); 114 page3.setImageDrawable(getResources().getDrawable(R.drawable.page)); 115 break; 116 case 1: 117 page0.setImageDrawable(getResources().getDrawable(R.drawable.page)); 118 page1.setImageDrawable(getResources().getDrawable( 119 R.drawable.page_now)); 120 page2.setImageDrawable(getResources().getDrawable(R.drawable.page)); 121 page3.setImageDrawable(getResources().getDrawable(R.drawable.page)); 122 break; 123 case 2: 124 page0.setImageDrawable(getResources().getDrawable(R.drawable.page)); 125 page1.setImageDrawable(getResources().getDrawable(R.drawable.page)); 126 page2.setImageDrawable(getResources().getDrawable( 127 R.drawable.page_now)); 128 page3.setImageDrawable(getResources().getDrawable(R.drawable.page)); 129 break; 130 case 3: 131 page0.setImageDrawable(getResources().getDrawable(R.drawable.page)); 132 page1.setImageDrawable(getResources().getDrawable(R.drawable.page)); 133 page2.setImageDrawable(getResources().getDrawable(R.drawable.page)); 134 page3.setImageDrawable(getResources().getDrawable( 135 R.drawable.page_now)); 136 break; 137 138 default: 139 break; 140 } 141 142 } 143 144 }