XBanner
支持图片无限轮播的控件,可进行自定义功能。
主要功能:
- 支持根据服务端返回的数据动态设置广告条的总页数
- 支持大于等于1页时的无限循环自动轮播、手指按下暂停轮播、抬起手指开始轮播
- 支持自定义状态指示点位置 左 、中 、右
- 支持自定义状态指示点
- 支持监听 item 点击事件
- 支持设置图片轮播间隔
- 支持指示器背景的修改及隐藏/显示
- 支持显示提示性文字功能
- 支持图片切换动画,目前支持10种切换动画
- 支持设置图片切换速度
- 支持设置数字指示器
- 支持Glide/Fresco等主流图片加载框架加载图片
自定义属性说明
基本使用
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.**{*;}