android 图片轮播控件 Android-ConvenientBanner简单使用

ConvenientBanner
通用的图片轮播控件。支持无限循环,可以设置自动翻页和时间(而且非常智能,手指触碰则暂停翻页,离开自动开始翻页。你也可以设置在界面onPause的时候不进行自动翻页,onResume之后继续自动翻页),并且提供多种翻页特效。 对比其他图片轮播控件,大多都需要对源码进行改动才能加载网络图片,或者帮你集成不是你所需要的图片缓存库。而这个库能让有代码洁癖的你欢喜,不需要对库源码进行修改你就可以使用任何你喜欢的网络图片库进行配合。
首先先来看效果图:

使用这个控件首先得先添加依赖

compile 'com.bigkoo:convenientbanner:2.0.5'

然后在布局文件中

<com.bigkoo.convenientbanner.ConvenientBanner
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/convenientBanner"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        app:canLoop="true" //控制循环与否
/>

直接举一个加载网络图片的例子:

//开始自动翻页
        convenientBanner.startTurning(4000);
        convenientBanner.setPageTransformer(new AccordionTransformer());
        convenientBanner.setPages(new CBViewHolderCreator() {
                        @Override
                        public NetworkImageHolderView createHolder() {
                            return new NetworkImageHolderView();
                        }
                    }, Arrays.asList(imgs)).setPageIndicator(new int[]{R.drawable.dot, R.drawable.dot_selected}).setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.ALIGN_PARENT_RIGHT);

public class NetworkImageHolderView implements Holder<String> {
        private ImageView imageView;

        @Override
        public View createView(Context context) {
            imageView = new ImageView(context);
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            return imageView;
        }
        @Override
        public void UpdateUI(Context context, int position, String data) {
            Glide.with(getActivity()).load(data).into(imageView);
        }
    }

首先获取该控件,,然后设置自动轮播时间4秒,然后设置轮播特效。然后使用setPages方法,里面有两个参数,CBViewHolderCreator对象和图片资源集合。
首先我们自定义一个NetworkImageHolderView 继承自Holder,然后在createView中创建imageview,
在UpdateUi中显示到对应imageview上,这里的data就是传过来的图片资源,我这里是url地址。Glide是一个图片加载框架。
这样几部就可以实现一个通用的图片轮播控件,也可以当作导航页使用,轮播的也不一定是图片,可以随自己需求定制。
欢迎广大新手加入我的android新手入门学习群一起交流进步:145186993

你可能感兴趣的:(android开发)