ABanner 是一个安卓的轮播图,支持画廊效果,支持自定义各种效果,支持自定义指示器
- 无限轮播
- 经典效果
- 画廊效果
- View 复用机制
- 多种指示器(圆角矩形,矩形,圆点,图片等)
- 形状指示器支持设置选中与未选择颜色
- 自定义效果
- 自定义指示器
- 等等....
1、 在project中的gradle的allprojects中添加
allprojects {
repositories {
google()
jcenter()
//添加以下代码
maven {
https://dl.bintray.com/zhichengwu/ABanner
}
}
...
2、 在 app中的 gradle 中添加依赖
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
...
//添加以下代码
implementation 'com.zhicheng:ABanner:latestVersion'
}
3、 在xml布局文件中使用ABanner控件
<com.zhicheng.androidbanner.ABanner
android:layout_width="match_parent"
android:layout_height="220dp">
</com.zhicheng.androidbanner.ABanner>
4、设置数据适配器
aABanner.setAdapter(aBaseABannerAdapter);
该适配器继承于 BaseABannerAdapter ,并重写下列方法:
//返回视图
public abstract View getView(int position, int viewType, View reusedView, ViewGroup parent);
public abstract int getCount(); //返回总个数
- 如有必要可以重写以下方法:
public int getViewType(int position); //返回一个视图类型,默认为0
5、在代码中对Abanner样式等进行设置
mBanner.setBannerTransformerType(ABanner.BannerType.GALLERY) //设置类型
.setAdapter(new BannerAdapter(true)) //设置 adapter
.setBannerTransformerDuration(1000) //设置滚动动画时间
.setBannerTrannerScale(0.8f) // 设置画廊模式的缩放
.setIndicatorType(ABanner.IndicatorType.ROUND_RECTANGLE) //设置指示器类型(圆角矩形)
.setIndicatorPosition(ABanner.IndicatorPosition.CENTER_BOTTOM,new Rect(80,50,80,20)) //设置指示器位置,并设置margin值
.startLoop(3000);
6、设置指示器
//获取到指示器后,根据类型强转,然后进行个性化设置
ShapeBannerIndicator bannerIndicator = (ShapeBannerIndicator)mBanner.getBannerIndicator();
bannerIndicator.setSelectColor(Color.RED); //设置选中颜色
bannerIndicator.setNormalColor(Color.LTGRAY); //设置未选中颜色
bannerIndicator.setNormalSize(new ASize(10,10)); //设置未选中大小
bannerIndicator.setSelectSize(new ASize(10,10)); //设置选中大小
bannerIndicator.reset(); //设置完成后请调用该方法
更多设置未详尽列出....
- 自定义指示器
请自定义一个继承BaseBannerIndicator的类, 并且实现以下方法
//当item需要更新的时候调用,selected `true`表示为选中状态的视图
public abstract void updateIndicatorItemView(View view,boolean selected);
//表示获取一个item的视图
public abstract View getIndicatorItemView(boolean selected);
然后调用以下方法:
aABanner.setCustomIndicator(aBaseBannerIndicator);
- 自定义滚动动画
请自定义一个类继承自BaseBannerTransformer并重写其中的方法,然后调用以下方法:
aABanner.setCustomTransformer(aBaseBannerTransformer);
