ViewPager

文章介绍了如何在Android中利用ViewPager实现轮播图效果,包括自动轮播、底部指示器跟随滑动以及点击指示器切换页面。内容涉及设置ViewPager控件,创建自定义Adapter,以及通过Glide加载图片。
摘要由CSDN通过智能技术生成

ViewPager的效果:在fragment中使用ViewPager实现轮播图效果 能够实现自动轮播 在轮播过程中底部指示器跟着滑动 点击指示器实现viewpager滑动

ViewPage的用处:ViewPager轮播图组件随处可见了,viewpager可以实现左右滑动,viewpager实现fragment切换是目前大部分app所需要使用的技术。常见的轮播图和引导页使用viewpager完成,能够实现自动轮播。

ViewPage的步骤:准备Viewpager控件,准备数据源,自定义MyAdapter继承PagerAdapter,从写四个方法,设置适配器。

ViewPage的定义:是android中专门用来实现左右滑动切换view效果的系统控件

getCount():获取viewpager显示数据个数。

destroyitem():当前项屏幕时执行的方法。

instantiateitem():实例化数据集中的每一个数据

isViewFromObject():判断view和obj是否为同一个view

vp = findViewById(R.id.vp);//初始化控件
List<Fragment> fragments = new ArrayList<>();//准备数据源
        BlankFragment1 blankFragment1 = new BlankFragment1();
        BlankFragment2 blankFragment2 = new BlankFragment2();
        BlankFragment3 blankFragment3 = new BlankFragment3();
        fragments.add(blankFragment1);
        fragments.add(blankFragment2);
        fragments.add(blankFragment3);
        MyFragmentAdapter myFragmentAdapter = new MyFragmentAdapter(getSupportFragmentManager(),fragments);//定义适配器
        vp.setAdapter(myFragmentAdapter);//设置适配器
        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                switch (i){
                    case R.id.bt1:
                        vp.setCurrentItem(0);
                        break;
                    case R.id.bt2:
                        vp.setCurrentItem(1);
                        break;
                    case R.id.bt3:
                        vp.setCurrentItem(2);
                        break;
                }
            }
        });
        vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                switch (position){
                    case 0:
                        rg.check(R.id.bt1);
                        break;
                    case 1:
                        rg.check(R.id.bt2);
                        break;
                    case 2:
                        rg.check(R.id.bt3);
                        break;
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
List<Integer> integers = new ArrayList<>();//准备数据源
        integers.add(R.drawable.img1);
        integers.add(R.drawable.img2);
        integers.add(R.drawable.img3);
        banner.setImages(integers);
        banner.setImageLoader(new ImageLoader() {
            @Override
            public void displayImage(Context context, Object path, ImageView imageView) {
                Glide.with(context).load(path).into(imageView);
            }
        }).start();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值