一般而言,ViewPager用于页面的滑动,常常和Fragment一起搭配,
因为有Fragment的Adapter可以提供
可是最近发现,有时候压根就不需要用到Fragment,只是要做下类似微信的图片查看滑动就行
难道非得塞进Fragment来显示岂不是太麻烦。
用ImageView来直接进行Pager显示
public class MyAdapter extends PagerAdapter {
private List<ImageView> mImageViewList;
public MyAdapter(List<ImageView> imageViewList) {
super();
this.mImageViewList = imageViewList;
}
@Override//获得图片的数量
public int getCount() {
// TODO Auto-generated method stub
return mImageViewList.size();
}
@Override//判断View和对象是不是相关
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
@Override//移除条目某张页面图片
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(mImageViewList.get(position%mImageViewList.size()));
}
@Override//添加页面图片
public Object instantiateItem(ViewGroup container, int position) {
container.addView(mImageViewList.get(position%mImageViewList.size()));
return mImageViewList.get(position%mImageViewList.size());
}
}
布局文件就给个ViewPager显示
<android.support.v4.view.ViewPager
android:id="@+id/id_viewpager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#fff"
>
</android.support.v4.view.ViewPager>
主函数
public class MainActivity extends Activity implements OnPageChangeListener{
private List<ImageView> imageViewList;
private ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
}
public void initData()
{
//定义ViewPager
mViewPager = (ViewPager) findViewById(R.id.id_viewpager);
//定义图片控件
ImageView image1=new ImageView(this);
ImageView image2=new ImageView(this);
ImageView image3=new ImageView(this);
//将图片加入控件中
image1.setBackgroundResource(R.drawable.image1);
image2.setBackgroundResource(R.drawable.image2);
image3.setBackgroundResource(R.drawable.image3);
//加入imageViewList集合
imageViewList = new ArrayList<ImageView>();
imageViewList.add(image1);
imageViewList.add(image2);
imageViewList.add(image3);
//设置自定义Adapter
MyAdapter adapter = new MyAdapter(imageViewList);
mViewPager.setAdapter(adapter);
//设置滑动监听
mViewPager.setOnPageChangeListener(this);
//设置第一次当前页
mViewPager.setCurrentItem(0);
}
@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) {
// TODO Auto-generated method stub
}
}