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

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

2012-11-29 21:12 260 查看
上文接《android中通过ViewPager实现左右滑屏(上)
使用实例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();    }

结束!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: