Android轮播之Xbanner实现

XBanner

支持图片无限轮播的控件,可进行自定义功能。

主要功能:

  • 支持根据服务端返回的数据动态设置广告条的总页数
  • 支持大于等于1页时的无限循环自动轮播、手指按下暂停轮播、抬起手指开始轮播
  • 支持自定义状态指示点位置 左 、中 、右
  • 支持自定义状态指示点
  • 支持监听 item 点击事件
  • 支持设置图片轮播间隔
  • 支持指示器背景的修改及隐藏/显示
  • 支持显示提示性文字功能
  • 支持图片切换动画,目前支持10种切换动画
  • 支持设置图片切换速度
  • 支持设置数字指示器
  • 支持Glide/Fresco等主流图片加载框架加载图片

自定义属性说明

Android轮播之Xbanner实现_第1张图片

基本使用

1.添加Gradle依赖

implementation 'com.github.xiaohaibin:XBanner:1.6.1'

2.xml布局文件

<com.stx.xhb.xbanner.XBanner
                android:background="#fff"
                android:id="@+id/home_xbanner"
                android:layout_width="match_parent"
                android:layout_height="@dimen/dp_160"
                app:isHandLoop="true"
                app:isAutoPlay="true"
                app:isClipChildrenMode="true"
                app:pageChangeDuration="800"
                app:pointsPosition="RIGHT"
                app:AutoPlayTime="3000"
                app:clipChildrenLeftRightMargin="@dimen/dp_24"
                android:paddingBottom="10dp"
                />

3.在Activity或者Fragment中配置

//oncreater方法中获取资源id
	 xbanner = view.findViewById(R.id.home_xbanner);
	 //banner轮播显示(这是 MVP框架 V层 实现的方法)
	    @Override
	    public void showBannerData(final String responseData) {
	        getActivity().runOnUiThread(new Runnable() {
	            @Override
	            public void run() {
	
	                Toast.makeText(getActivity(),""+responseData,Toast.LENGTH_SHORT).show();
	                Gson gson = new Gson();
	                BannerImageBean resultBean = gson.fromJson(responseData, BannerImageBean.class);
	                //创建集合 
	                list = new ArrayList<>();
	                //往集合里添加 接口中 的 路径 
	                for (int i = 0; i < resultBean.getResult().size(); i++) {
	                    list.add(resultBean.getResult().get(i).getImageUrl());
	                }
	                xbanner.setData(list,null);
	                //适配器
	                xbanner.loadImage(new XBanner.XBannerAdapter() {
	                    @Override
	                    public void loadBanner(XBanner banner, Object model, View view, int position) {
	                    		//可根据自己项目需要使用相应的图片加载工具进行加载图片,此处使用Glide,进行加载,可配置占位图等
		                        Glide.with(getActivity()).load(list.get(position)).into((ImageView)view);
	                    }
	                });
	            }
	        });
	    }

4.监听广告 item 的单击事件

 xbanner.setOnItemClickListener(new XBanner.OnItemClickListener() {
            @Override
            public void onItemClick(XBanner banner, int position) {
                Toast.makeText(MainActivity.this, "点击了第"+position+"图片", Toast.LENGTH_SHORT).show();
            }
        });

5.混淆配置

##XBanner 图片轮播混淆配置
-keep class com.stx.xhb.xbanner.**{*;}

创作不易,仅供参考,如有问题,评论留言,如有雷同,纯属巧合!

你可能感兴趣的:(Android轮播之Xbanner实现)