注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

民主与科学

独立之人格,自由之思想

 
 
 

日志

 
 

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

2012-11-23 23:09:05|  分类: Android的UI开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
使用实例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();
    }

结束!
  评论这张
 
阅读(1624)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017