ViewPager欢迎页

布局 

 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 }
原文地址:https://www.cnblogs.com/lavalike/p/4695843.html