您的位置:首页 > 其它

ViewPager实现左右无限循环滑动

2014-10-17 15:45 281 查看
public class MyViewPagerAdapter extends PagerAdapter {

    private Context mContext;

    private ArrayList<ImageView> mImageViews = new ArrayList<ImageView>();

    public MyViewPagerAdapter(Context mContext, ArrayList<String> mImageUrls) {

        this.mContext = mContext;

        initPagerView(mImageUrls);

    }

    @Override

    public int getCount() {

        return Integer.MAX_VALUE;

    }

    @Override

    public boolean isViewFromObject(View arg0, Object arg1) {

        return arg0 == arg1;

    }

    @Override

    public void destroyItem(View container, int position, Object object) {

        // 实现左右循环时不能销毁

        // ((ViewPager) container).removeView(mImageViews.get(position %

        // mImageViews.size()));

    }

    @Override

    public Object instantiateItem(View container, int position) {

        // 实现左右循环时添加捕获异常

        try {

            ((ViewPager) container).addView(mImageViews.get(position % mImageViews.size()), 0);

        } catch (Exception e) {

        }

        return mImageViews.get(position % mImageViews.size());

    }

    private void initPagerView(ArrayList<String> mImageUrls) {

        for (int i = 0; i < mImageUrls.size(); i++) {

            ImageView imageView = new ImageView(mContext);

            TupoApplication.finalBitmap.display(imageView, mImageUrls.get(i),

                    BitmapUtils.getIconDisplayConfig());

            mImageViews.add(imageView);

        }

    }

}

使用:

ViewPager viewPager = new ViewPager(context);

viewPager.setAdapter(new MyViewPagerAdapter(context, imageUrls));

// 实现向左滑动

viewPager.setCurrentItem(imageUrls.size() * 100);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: