目录
用法:数据ImageView+自定义适配器+ViewPager控件
1 添加ViewPager
在Activity的XML布局文件中添加一个控件——ViewPager。
在Java代码中找控件ViewPager。
2 创建Adapter类
继承PagerAdapter类,重写必须重写的两个方法getCount和isViewFromObject。
并ctrl+o,重写两个生成控件和销毁控件的两个方法。
instantiateItem和destroyItem。
3 在Adapter类中准备数据
此处我们只展示一个图片ImageView。
即List<ImageView>。
4 重写适配器中的方法
4.1 重写getCount
获取列表中元素的个数。
public int getCount(){
return mImageViewList==null?0:mImageViewList.size();
}
4.2 重写isViewFromObject
判断这个View和Object是不是同一个东西。而这个Object是什么,就是下一个要重写的instantiateItem方法的返回值。View就是这一页。
public boolean isViewFromObject(View view,Object object){
return view==object;
}
4.3 重写instantiateItem
生成一页,也就是ImageView,也就是List列表中的一项。
而整个List就相当于一个ViewPager。
public Object instantiateItem(ViewGroup container,int position){
//从列表中获取元素
ImageView imageView=mImageViewList.get(position);
//把此元素放入ViewGroup中
container.addView(imageView);
//返回此元素
return imageView;
}
4.4 重写destroyItem
当从这一页划到另外一页时,前面那一页应该被销毁。
public void destroyItem(ViewGroup container,int position,Object object){
super.destroyItem(container,position,object);
//从ViewGroup中移除
container.removeView((View)object);
}
4.5 实例化
public Adapter(List<ImageView> imageViewList){
mImageViewList=imageViewList;
}
5 回到Avtivity,实例化适配器对象
准备数据并传入。
private void intiData(){
ImageView imageView1=new ImageView(this);
imageView1.setImageResource(R.id.xxx);
ImageView imageView2=new ImageView(this);
imageView2.setImageResource(R.id.xxx);
ImageView imageView3=new ImageView(this);
imageView3.setImageResource(R.id.xxx);
mImageViews=new ArrayList<>();
mImageViews.add(imageView1);
mImageViews.add(imageView2);
mImageViews.add(imageView3);
}
6 主运行代码
先进行第五步的数据初始化。
然后创建适配器对象。
然后给ViewPager设置适配器。
然后有必要的时候给ViewPager添加监听addOnPageChangeListener(new ViewPager.OnpageChangeLisgener()),有三个回调方法,最常用的是第二个onPageSelected(),
就是划定到某一页就会触发。
本文详细介绍如何使用ViewPager结合自定义Adapter实现图片轮播效果。包括添加ViewPager控件、创建及重写PagerAdapter方法、实例化Adapter对象等步骤。
347

被折叠的 条评论
为什么被折叠?



