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

在实际应用中 总会用到轮播图的效果。当然 android的话很多情况下都是通过viewpager实现的。但是通过使用发现,它的轮播效果是这样的 从最后一个切回回第一个时是重新跳转到第一个来实现的。这样效果不是很理想。那么如何让他在最后一张时还是向右滑动切换回第一张呢。最常用的方法是最大值法。就是在适配器中将参数设置成最大值。让他一直找不到边界,自然就一直向右切换了。如下段代码


 private class MyPagerAdapter  extends PagerAdapter {

        @Override
        public 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));这里最好不要用这个方法 会报异常
        }

        @Override
        public 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);
        }

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            
            return Integer.MAX_VALUE;

        }

        @Override
        public boolean isViewFromObject(View arg0, Object arg1) {
            // TODO Auto-generated method stub
            return arg0 == arg1;
        }
        @Override
        public void restoreState(Parcelable arg0, ClassLoader arg1) {
            // TODO Auto-generated method stub

        }

        @Override
        public Parcelable saveState() {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public void startUpdate(View arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void finishUpdate(View arg0) {
            // TODO Auto-generated method stub

        }

    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值