你的位置:首页 > 软件开发 > 操作系统 > Android使用ViewPager实现左右循环滑动及轮播效果

Android使用ViewPager实现左右循环滑动及轮播效果

发布时间:2016-06-16 15:00:02
边界的时候会看到一个不能翻页的动画,可能影响用户体验。此外,某些区域性的ViewPager(例如展示广告或者公告之类的ViewPager),可能需要自动轮播的效果,即用户在不用滑动的情况下就能够看到其他页面的信息。为此我查阅了网络上现有的一些关于实现这样效果的例子,但都不是很满意 ...

边界的时候会看到一个不能翻页的动画,可能影响用户体验。此外,某些区域性的ViewPager(例如展示广告或者公告之类的ViewPager),可能需要自动轮播的效果,即用户在不用滑动的情况下就能够看到其他页面的信息。

为此我查阅了网络上现有的一些关于实现这样效果的例子,但都不是很满意,经过反复实验,在这里总结并分享给大家,希望能有所帮助。

 

循环滑动效果的实现:PagerAdapter

我们知道ViewPager自带的滑动效果非常出色,因此我们基本不需要处理这个滑动,只处理内容的显示。而内容的显示是由Adapter控制的,因此这里重点就是这个Adapter了。为简单起见,本例的每个View直接是一张图片。下面是Adapter的代码:

private class ImageAdapter extends PagerAdapter{           private ArrayList<ImageView> viewlist;       public ImageAdapter(ArrayList<ImageView> viewlist) {       this.viewlist = viewlist;     }       @Override     public int getCount() {       //设置成最大,使用户看不到边界       return Integer.MAX_VALUE;     } /* hwq2.com */      @Override     public boolean isViewFromObject(View arg0, Object arg1) {       return arg0==arg1;     }      @Override       public void destroyItem(ViewGroup container, int position,           Object object) {         //Warning:不要在这里调用removeView      }       @Override       public Object instantiateItem(ViewGroup container, int position) {        //对ViewPager页号求模取出View列表中要显示的项        position %= viewlist.size();        if (position<0){          position = viewlist.size()+position;        }        ImageView view = viewlist.get(position);        //如果View已经在之前添加到了一个父组件,则必须先remove,否则会抛出IllegalStateException。        ViewParent vp =view.getParent();        if (vp!=null){          ViewGroup parent = (ViewGroup)vp;          parent.removeView(view);        }        container.addView(view);         //add listeners here if necessary        return view;       }    } /* 何问起 hovertree.com */

原标题:Android使用ViewPager实现左右循环滑动及轮播效果

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录