1这是activity界面.
public class MainActivity extends Activity implements OnPageChangeListener {
private ViewPager vp;private List<View> views;
private View view1,view2,view3;
private ImageView[] dots; //声明图像控件组
private int[] ids={R.id.iv1,R.id.iv2,R.id.iv3}; //获取imageView对应的ID
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vp=(ViewPager) findViewById(R.id.viewPager);
iniview();
initDots();
}
private void iniview(){
LayoutInflater inflater=getLayoutInflater();
view1 = inflater.inflate(R.layout.viewpagwe_one, null);
view2 = inflater.inflate(R.layout.viewpagwe_two,null);
view3 = inflater.inflate(R.layout.viewpagwe_three, null);
views = new ArrayList<View>();// 将要分页显示的View装入数组中
views.add(view1);
views.add(view2);
views.add(view3);
viewPagerAdapter adapter=new viewPagerAdapter(MainActivity.this, views);
vp.setAdapter(adapter);
vp.setOnPageChangeListener(this);
}
private void initDots(){
dots=new ImageView[views.size()];
for (int i = 0; i < views.size(); i++) {
dots[i]=(ImageView) findViewById(ids[i]);
}
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageSelected(int arg0) {
for (int i = 0; i < ids.length; i++) {
if (arg0 == i) {
dots[i].setImageResource(R.drawable.img_11);
}else {
dots[i].setImageResource(R.drawable.img_22);
}
}
}
}
2.这是viewPager的Adapter
public class viewPagerAdapter extends PagerAdapter {
private Context context;
private List<View> views;
public viewPagerAdapter(Context context,List<View> views){
this.context=context;
this.views=views;
}
//getCount():返回要滑动的VIew的个数
@Override
public int getCount() {
return views.size();
}
//isViewFromObject():对于这个函数就先不做讲解,大家目前先知道它要这样重写就行了,后面我们会对它进行改写。
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
//destroyItem():从当前container中删除指定位置(position)的View;
@Override
public void destroyItem(View container, int position, Object object) {
((ViewPager) container).removeView(views.get(position));
}
//instantiateItem():做了两件事,第一:将当前视图添加到container中,第二:返回当前View
@Override
public Object instantiateItem(View container, int position) {
((ViewPager) container).addView(views.get(position));
return views.get(position);
}