Android学习之路--简单的ViewPager

来源:互联网 发布:电脑安装linux系统步骤 编辑:程序博客网 时间:2024/05/18 03:49

http://developer.android.com/reference/android/support/v4/view/ViewPager.html  ViewPager的官方的文档地址。

利用ViewPager,可以做导航页,菜单页等,它就像ListView一样,需要去配置适配器。


     完成ViewPager,需要四步骤去实现。

1、定义xml中的ViewPager控件.

2、定义PagerAdapter

3、定义Fragment

4、ViewPager设置Adapter


     第一步、定义xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:orientation="vertical"              android:layout_width="fill_parent"              android:layout_height="fill_parent">    <android.support.v4.view.ViewPager            android:id="@+id/extViewPager"            android:layout_height="fill_parent"            android:layout_width="fill_parent"            /></RelativeLayout>

第二步、定义PagerAdapter

//定义PagerAdapter    private class GuidePagerAdapter extends FragmentPagerAdapter {        private GuidePagerAdapter(FragmentManager fm) {            super(fm);        }        @Override        public Fragment getItem(int i) {            //得到Fragment的实例            return GuideFragment.getInstance(guideImageUrl[i]);  //To change body of implemented methods use File | Settings | File Templates.        }        @Override        public int getCount() {            return guideImageUrl.length;  //To change body of implemented methods use File | Settings | File Templates.        }    }
第三步、定义Fragment

//定义Fragment    public static class GuideFragment extends Fragment{        public String uri;        public static GuideFragment getInstance(String uri){            GuideFragment guideFragment = new GuideFragment();            Bundle bundle = new Bundle();            bundle.putString("uri", uri);            guideFragment.setArguments(bundle);            return guideFragment;        }        //获得图片uri的路径        @Override        public void onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);    //To change body of overridden methods use File | Settings | File Templates.            Bundle bundle = getArguments();            if(bundle != null){                uri = bundle.getString("uri");            }        }        //建立View        @Override        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {            View rootView = inflater.inflate(R.layout.fragement_guide_page,null);            ImageView imageView = (ImageView)rootView.findViewById(R.id.iv_guide_pic);            Log.i("SplashGuidPager", "guide/"+uri);            imageView.setImageBitmap(getBitMap("guide/"+uri));            return rootView;        }        //定义的方法,用来获得BitMap        public Bitmap getBitMap(String uri){            try {                return BitmapFactory.decodeStream(getResources().getAssets().open(uri));            } catch (IOException e){                e.printStackTrace();            }            return null;        }    }
第四步、设置ViewpagerAdapter

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);    //To change body of overridden methods use File | Settings | File Templates.        this.requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.splash);        initGuidPager();    }    public void initGuidPager(){        //获得XML的文件中的viewPager        viewPager = (ViewPager)findViewById(R.id.extViewPager);        //获得assert中的图片文件        AssetManager assetManager = getResources().getAssets() ;        try {            //得到guide文件夹中的图片的文件名            guideImageUrl = assetManager.list("guide");        } catch (IOException exception){            exception.printStackTrace();        }        //设置adapter        viewPager.setAdapter(new GuidePagerAdapter(getSupportFragmentManager()));    }



0 0
原创粉丝点击