https://github.com/youlookwhat/bybannerview
banner:右端缩进、左右露出、返回轮播、循环轮播
https://github.com/youlookwhat/bybannerview
bannerview viewpager
Last synced: 5 months ago
JSON representation
banner:右端缩进、左右露出、返回轮播、循环轮播
- Host: GitHub
- URL: https://github.com/youlookwhat/bybannerview
- Owner: youlookwhat
- License: apache-2.0
- Created: 2019-02-27T03:02:14.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-06-08T02:26:47.000Z (almost 2 years ago)
- Last Synced: 2023-06-08T03:26:04.059Z (almost 2 years ago)
- Topics: bannerview, viewpager
- Language: Java
- Homepage:
- Size: 855 KB
- Stars: 21
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
### 示例图

[](https://jitpack.io/#youlookwhat/ByBannerView)
### 重大更新!!
> 上个版本1.1.7,如果是左右留边的banner样式,首次进去会有黏在一起的情况,但是没有人反馈,所以我认为这个库基本除了我没人使用,哈哈。如果有人使用看这里就好。- 1.更改依赖库名:`com.github.youlookwhat:ByBannerView:1.4.0`
- 2.xml引入更换:``
- 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:```java
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
```Step 2. Add the dependency
```java
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),默认居中`CENTER`
- `setBannerStyle(int bannerStyle)`: 设置指示器样式 (默认`BannerConfig.CIRCLE_INDICATOR`)
- NOT_INDICATOR: 取消指示器
- CIRCLE_INDICATOR: 自带的指示器
- CUSTOM_INDICATOR: 手动设置的指示器,不规定指示器宽高,随指示器自身的宽高#### 使用示例
```xml```
```java
banner.setPageRightMargin(dip2px(this, 59))
.setBannerAnimation(ScaleRightTransformer.class)
.setOffscreenPageLimit(list.size())
.setDelayTime(3000)
.setPages(list, new HolderCreator() {
@Override
public SBannerViewHolder createViewHolder() {
return new CustomViewHolder();
}
})
.start();
banner.setOnBannerClickListener(new OnBannerClickListener() {
@Override
public void onBannerClick(int position) {
}
});class CustomViewHolder implements SBannerViewHolder {
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) {
}
}
```#### 混淆
```java
-keep class me.jingbin.banner.** {*;}
```