Android学习之路--简单的ViewPager

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值