[android界面开发]——ViewPager介绍01

来源:互联网 发布:三唑仑在淘宝能买来吗 编辑:程序博客网 时间:2024/05/22 15:30

一:什么是ViewPager

ViewPager就是用于左右滑动的视图,主要用于在第一次使用软件时,介绍软件使用的.....我们可以做很多事情,从最简单的导航,到页面菜单等等。

二、ViewPager实现的功能

       看到上面的效果图,想必大家已经猜出了这个类是干吗用的了,ViewPager类提供了多界面切换的新效果,

新效果有如下特征:

<1>当前显示一组界面中的其中一个界面;

<2>当用户通过左右滑动界面时,当前的屏幕显示当前界面和下一个界面的一部分;

<3>滑动结束后,界面自动跳转到当前选择的界面中。

三:ViewPager的详细说明

这是谷歌官方给我们提供的一个兼容低版本安卓设备的软件包,里面包囊了只有在安卓3.0以上可以使用的api。而viewpager就是其中之一利用它,我们可以做很多事情,从最简单的导航,到页面菜单等等。那如何使用它呢,与LisstView类似,我们也需要一个适配器,他就是PagerAdapter。

四:ViewPager的使用步骤

1.在主布局加入ViewPager

 <!-- 包名+类名 --><android.support.v4.view.ViewPager    android:id="@+id/viewpager"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    />
2.在主函数中得到ViewPager

private ViewPager viewPager;//得到VIewpager对象viewPager = (ViewPager) findViewById(R.id.viewpager);

3.创建adapter

从上面的图片可以看到,ViewPager的适配器是PagerAdapter,它是基类提供适配器来填充页面ViewPager内部,你很可能想要使用一个更具体的实现,如FragmentPagerAdapter或FragmentStatePagerAdapter。在这里需要说明一下,其实ViewPager应该和Fragment一起使用,至少谷歌官方是这么想的,但是在3.0之下,我们没有必要这么做。下面要注意,当你实现一个PagerAdapter,你必须至少覆盖以下方法:

  • instantiateItem(ViewGroup, int)
  • destroyItem(ViewGroup, int, Object)
  • getCount()
  • isViewFromObject(View, Object)

/** *  * 自定义一个 pager Adapter  * */private class MyPagerAdapter extends  PagerAdapter{/** * 得到数据里总的item的条数  返回页卡的数量 */@Overridepublic int getCount() {// TODO Auto-generated method stubreturn list.size();}/** * 根据指定的下标 创建Viewpager 展示的item 视图   添加页卡 * ViewGroup container;管理当前Viewpager的视图组 * int position: 指定的下标 */@Overridepublic Object instantiateItem(ViewGroup container, int position) {// TODO Auto-generated method stubcontainer.addView(list.get(position));//将指定的view对象   存储到视图组中return list.get(position);}/**                 * 根据指定的下标  移除 移除视图组中view对象 删除页卡 * ViewGroup container:视图组 * int position:指定的下标 * Object object:instantiateItem返回的 Object对象 */@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {// TODO Auto-generated method stubcontainer.removeView(list.get(position));//从视图 组中移除指定下标的view对象}/** * 表示当前viewpager 展示的view对象  是否是instantiateItem  返回的对象是否是同一对象  官方提示这样写 */@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0 == arg1;}}

4.创建数据源

//添加图片private int[] images={R.drawable.image1,R.drawable.image2,R.drawable.image3};private List<ImageView> list;
list=new ArrayList<ImageView>();        //得到数据源        for(int i=0;i<images.length;i++){        ImageView imageView=new ImageView(this);        imageView.setImageResource(images[i]);        list.add(imageView);        }

5.在主方法里面调用
MyAdapter adapter=new MyAdapter();        viewpager.setAdapter(adapter);





0 0
原创粉丝点击