ViewPager用法参考上一篇http://blog.youkuaiyun.com/taoolee/article/details/48162507
方法一XML中实现
public class MainActivity extends Activity {
private ViewPager mViewPager;
private List<View> views;
//管理圆点的
private List<View>dots;
private LayoutInflater mInflater;
private int oldPosition = 0;// 记录上一次点的位置
private int currentItem; // 当前页面
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dots = new ArrayList<View>();
dots.add(findViewById(R.id.dot_1));
dots.add(findViewById(R.id.dot_2));
dots.add(findViewById(R.id.dot_3));
//另外一种实现方法实在代码中实现
for(int i=0;i<3;i++){
ImageView iv1=new ImageView(this);
iv1.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT));
iv1.setImageResource(R.mipmap.point_normal);
}
mViewPager = (ViewPager) findViewById(R.id.viewpager);
views = new ArrayList<>();
mInflater = getLayoutInflater();
View view1 = mInflater.inflate(R.layout.viewpager_item1, null);
View view2 = mInflater.inflate(R.layout.viewpager_item2, null);
View view3 = mInflater.inflate(R.layout.viewpager_item3, null);
views.add(view1);
views.add(view2);
views.add(view3);
MyAdapter myAdapter=new MyAdapter(views);
mViewPager.setAdapter(myAdapter);
//因为开始页面不响应页面滑动,所以先把开始页面设置为选中背景
dots.get(0).setBackgroundResource(R.mipmap.point_select);
//设置ViewPager的默认项, 设置为长度的100倍,这样子开始就能往左滑动
// mViewPager.setCurrentItem((views.size()) * 100);
//addOnPageChangeListener替换掉setOnPageChangeListener
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
//当前页面
@Override
public void onPageSelected(int position) {
// TODO Auto-generated method stub
dots.get(oldPosition).setBackgroundResource(R.mipmap.point_normal);
dots.get(position).setBackgroundResource(R.mipmap.point_select);
oldPosition = position;
currentItem = position;
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
}
<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"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="35dip"
android:layout_gravity="bottom"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dip"
android:orientation="horizontal" >
<View
android:id="@+id/dot_1"
android:layout_width="10dip"
android:layout_height="10dip"
android:layout_marginLeft="2dip"
android:layout_marginRight="2dip"
android:background="@mipmap/point_normal" />
<View
android:id="@+id/dot_2"
android:layout_width="10dip"
android:layout_height="10dip"
android:layout_marginLeft="2dip"
android:layout_marginRight="2dip"
android:background="@mipmap/point_normal" />
<View
android:id="@+id/dot_3"
android:layout_width="10dip"
android:layout_height="10dip"
android:layout_marginLeft="2dip"
android:layout_marginRight="2dip"
android:background="@mipmap/point_normal" />
</LinearLayout>
</LinearLayout>
</FrameLayout>
</RelativeLayout>
方法二代码中实现
public class MainActivity extends Activity {
private ViewPager mViewPager;
private List<View> views;
//管理圆点的
private List<ImageView> dots;
private LayoutInflater mInflater;
private LinearLayout mLinearLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//另外一种实现方法在代码中实现
dots = new ArrayList<>();
mLinearLayout= (LinearLayout) findViewById(R.id.linerlayout);
for (int i = 0; i < 3; i++) {
ImageView iv1 = new ImageView(this);
iv1.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
iv1.setImageResource(R.mipmap.point_normal);
iv1.setLeft(50);
dots.add(iv1);
mLinearLayout.addView(iv1);
}
//因为开始页面不响应页面滑动,所以先把开始页面设置为选中背景setBackgroundResource不可以
dots.get(0).setImageResource(R.mipmap.point_select);
mViewPager = (ViewPager) findViewById(R.id.viewpager);
views = new ArrayList<>();
mInflater = getLayoutInflater();
View view1 = mInflater.inflate(R.layout.viewpager_item1, null);
View view2 = mInflater.inflate(R.layout.viewpager_item2, null);
View view3 = mInflater.inflate(R.layout.viewpager_item3, null);
views.add(view1);
views.add(view2);
views.add(view3);
MyAdapter myAdapter = new MyAdapter(views);
mViewPager.setAdapter(myAdapter);
//addOnPageChangeListener替换掉setOnPageChangeListener
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
//当前页面
@Override
public void onPageSelected(int position) {
//遍历当前页改变背景其他背景设为常规
for (ImageView iv1 : dots) {
iv1.setImageResource(R.mipmap.point_normal);
}
dots.get(position).setImageResource(R.mipmap.point_select);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
}
<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"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout
android:id="@+id/linerlayout"
android:layout_width="match_parent"
android:layout_height="50dip"
android:layout_gravity="bottom"
android:gravity="center"
android:orientation="horizontal" >
</LinearLayout>
</FrameLayout>
</RelativeLayout>