PagerAdapter主要是viewpager的适配器,该适配器能填充页面内容到ViewPager中。它也是android.support.v4包中的类,
PagerAdapter需要重写四个方法
public int getCount() {
return this.views.size();
}
/**初始化position界面*/
@Override
public Object instantiateItem(ViewGroup container, int position) {
((ViewPager)container).addView(views.get(position));
return views.get(position);
}
/**判断是否由对象生成界面*/
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}
/**当切换的图片多于三张时会调用,用来销毁以前图片*/
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager)container).removeView(views.get(position));
}
主Activity代码
public class MainActivity extends Activity
{
private ViewPager viewpager;
private List<View> views;
private int[] guideImgaes={R.drawable.banner1,R.drawable.banner2,R.drawable.banner3,R.drawable.banner4,};
private ViewPagerAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
}
/**初始化View*/
private void initView(){
viewpager=(ViewPager) findViewById(R.id.viewpager);
views= new ArrayList<View>();
adapter=new ViewPagerAdapter(views); //给adapter一个列表容器,用来存储数据
}
/**初始化数据*/
private void initData(){
//将图片填充整个窗体
for(int i:guideImgaes){//i是存储的四张图片的ID
ImageView imageView= new ImageView(this);
imageView.setImageResource(i);//将id给参数imageView,setImageResource是将图片根据分辨率适配
views.add(imageView) ;//将图片添加进List数组
}
viewpager.setAdapter(adapter);
}
}
for用于将照片的id存入数组容器中
再将这个数据传给适配器,再用setAdapter调用回来