ByBannerView
banner:右端缩进、左右露出、返回轮播、循环轮播
Install / Use
/learn @youlookwhat/ByBannerViewREADME
示例图

重大更新!!
上个版本1.1.7,如果是左右留边的banner样式,首次进去会有黏在一起的情况,但是没有人反馈,所以我认为这个库基本除了我没人使用,哈哈。如果有人使用看这里就好。
- 1.更改依赖库名:
com.github.youlookwhat:ByBannerView:1.4.0 - 2.xml引入更换:
<me.jingbin.banner.ByBannerView/> - 3.混淆修正:
-keep class me.jingbin.banner.** {*;} - 4.如果默认是返回轮播,查看是否添加属性:
app:is_back_loop="true"
how to use
Step 1. Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
implementation 'com.github.youlookwhat:ByBannerView:Tag'
}
功能
- 1.默认滑动到最后一条时,往回轮播
- 2.可设置右边距的轮播图,也可支持左右都有间距的轮播图
- 3.支持正常轮播图,并往回轮播或者循环轮播
- 4.防止重复点击,点击事件实现:
OnBannerFilterClickListener
属性解释
| 属性 | 类型 | 默认值 | 属性说明 | | ---- | ---- | ---- | --- | | delay_time | integer | 2000ms | 延迟多少毫秒开始滚动 | | scroll_time | integer | 800ms | 滚动一页需要多少毫秒| | is_auto_play | boolean | true | 是否自动滚动 | | is_loop | boolean | true | 是否无限滚动,false则滚动到最后一个时停止滚动 | | is_back_loop | boolean |false|滑到到最后一个时,是否返回滑动| | indicator_width | dimension | DisplayWidth / 80 | 指示器的宽度 | | indicator_height | dimension | DisplayWidth / 80 | 指示器的高度 | | indicator_margin | dimension | 10dp | 指示器距banner最底部的距离 | | indicator_padding | dimension | 5dp | 指示器之间的左右边距 | | indicator_drawable_selected | reference | gray_radius.xml | 选中的指示器样式 | | indicator_drawable_unselected | reference | white_radius.xml | 未选中的指示器样式 | | page_left_margin | dimension | 0 | banner距屏幕的左边距 | | page_right_margin | dimension | 0 | banner距屏幕的右边距 |
其他方法:
setIndicatorGravity(int type): 设置指示器的位置 (BannerConfig.LEFT/CENTER/RIGHT),默认居中CENTERsetBannerStyle(int bannerStyle): 设置指示器样式 (默认BannerConfig.CIRCLE_INDICATOR)- NOT_INDICATOR: 取消指示器
- CIRCLE_INDICATOR: 自带的指示器
- CUSTOM_INDICATOR: 手动设置的指示器,不规定指示器宽高,随指示器自身的宽高
使用示例
<me.jingbin.sbanner.SBannerView
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="330dp"
app:indicator_height="6dp"
app:indicator_margin="15dp"
app:indicator_padding="6dp"
app:indicator_width="6dp" />
banner.setPageRightMargin(dip2px(this, 59))
.setBannerAnimation(ScaleRightTransformer.class)
.setOffscreenPageLimit(list.size())
.setDelayTime(3000)
.setPages(list, new HolderCreator<SBannerViewHolder>() {
@Override
public SBannerViewHolder createViewHolder() {
return new CustomViewHolder();
}
})
.start();
banner.setOnBannerClickListener(new OnBannerClickListener() {
@Override
public void onBannerClick(int position) {
}
});
class CustomViewHolder implements SBannerViewHolder<BannerItemBean> {
private TextView mTextView;
@Override
public View createView(Context context) {
View view = LayoutInflater.from(context).inflate(R.layout.banner_item, null);
mTextView = (TextView) view.findViewById(R.id.text);
return view;
}
@Override
public void onBind(Context context, int position, BannerItemBean data) {
}
}
混淆
-keep class me.jingbin.banner.** {*;}
Related Skills
node-connect
350.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
