现在的位置: 首页 > 综合 > 正文

Android中通过ViewPager实现左右滑屏(下)

2012年03月31日 ⁄ 综合 ⁄ 共 1896字 ⁄ 字号 评论关闭

使用实例3

.代码片段1

        if(imgUrls.size() > 1){
            position = position + 200 * imgUrls.size();
        }
viewPager.setCurrentItem(position);

代码片段2
    private class MyPagerAdapter extends PagerAdapter {

        @Override
        public void destroyItem(View view, int i, Object object) {
            ViewPager viewPager = (ViewPager) view;
            View view2 = (View) object;
            viewPager.removeView(view2);
        }
        @Override
        public void finishUpdate(View arg0) {
        }
        @Override
        public int getCount() {
            if (imgUrls != null) {
                if (imgUrls.size() > 1) {
                    return Integer.MAX_VALUE;
                } else {
                    return imgUrls.size();
                }
            }
            return 0;
        }
        @Override
        public Object instantiateItem(View view, int i) {
            i = i % imgUrls.size();
            ViewPager viewPager = (ViewPager) view;
            View view2 = getView(i, imgUrls, context);
            viewPager.addView(view2);
            return view2;
        }
        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view == object;
        }
        @Override
        public void restoreState(Parcelable arg0, ClassLoader arg1) {
        }
        @Override
        public Parcelable saveState() {
            return null;
        }
        @Override
        public void startUpdate(View arg0) {
        }
    }

代码片段3

    public View getView(int position, List<String> urls, Context context) {
        View view = null;
        int size = urls.size();
        position = position % size;
        LayoutInflater inflater = LayoutInflater.from(context);
        view = inflater.inflate(R.layout.page_item, null);
        ImageUtil.setDrawable(view, urls.get(position));
        return view;
    }

如果我们在多个Activity之间进行左右滑动,那么可以采用如下的代码获得View,以实现在多个Activity之间进行左右滑动
    private View getView(String id, Class<?> clazz, Serializable data) {
        Intent intent = new Intent();
        Bundle bundle = new Bundle();
        bundle.putSerializable("data",data);
        intent.putExtras(bundle);
        intent.setClass(this, clazz);
        /*getLocalActivityManager是ActivityGroup的一个方法*/
        return getLocalActivityManager().startActivity(id, intent).getDecorView();
    }

结束!

抱歉!评论已关闭.