您的位置:首页 > 移动开发 > Android开发

android单向无限循环的轮播图效果。

2015-11-02 17:48 716 查看
在实际应用中 总会用到轮播图的效果。当然 android的话很多情况下都是通过viewpager实现的。但是通过使用发现,它的轮播效果是这样的 从最后一个切回回第一个时是重新跳转到第一个来实现的。这样效果不是很理想。那么如何让他在最后一张时还是向右滑动切换回第一张呢。最常用的方法是最大值法。就是在适配器中将参数设置成最大值。让他一直找不到边界,自然就一直向右切换了。如下段代码
 private class MyPagerAdapter  extends PagerAdapter {@Overridepublic void destroyItem(View container, int position, Object object) {// TODO Auto-generated method stub// position %= imageViewsList.size();//((ViewPag.er)container).removeView((View)object);// ((ViewPager)container).removeView(imageViewsList.get(position));这里最好不要用这个方法 会报异常}@Overridepublic Object instantiateItem(View container, int position) {position %= imageViewsList.size();if (position < 0){position = imageViewsList.size() + position;}ImageView imageView = imageViewsList.get(position);ViewParent vp = imageView.getParent();if (vp != null){ViewGroup parent = (ViewGroup)vp;parent.removeView(imageView);}//  ((ViewPager)container).removeView(imageViewsList.get(position));imageLoader.displayImage(imageView.getTag() + "", imageView);((ViewPager)container).addView(imageViewsList.get(position));return imageViewsList.get(position);}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn Integer.MAX_VALUE;}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0 == arg1;}@Overridepublic void restoreState(Parcelable arg0, ClassLoader arg1) {// TODO Auto-generated method stub}@Overridepublic Parcelable saveState() {// TODO Auto-generated method stubreturn null;}@Overridepublic void startUpdate(View arg0) {// TODO Auto-generated method stub}@Overridepublic void finishUpdate(View arg0) {// TODO Auto-generated method stub}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: