手记

Banner开源框架[Android轮播控件]

现在的绝大数App都有banner界面,也就是轮播控件,主要是实现循环播放多个广告图片和手动滑动循环等功能。因为ViewPager并不支持循环翻页,所以要实现循环还得需要自己去动手,我为了方便就开源了一个轮播控件,希望大家觉得有用。详细内容可进入github上查看。

Gradle

1
2
3
dependencies{
    compile 'com.youth.banner:banner:+' //最新版本
}

或者引用本地lib

1
compile project(':banner')

常量

方法名

描述

BannerConfig.NOT_INDICATOR

不显示指示器和标题

BannerConfig.CIRCLE_INDICATOR

显示圆形指示器

BannerConfig.NUM_INDICATOR

显示数字指示器

BannerConfig.NUM_INDICATOR_TITLE

显示数字指示器和标题

BannerConfig.CIRCLE_INDICATOR_TITLE

显示圆形指示器和标题(垂直显示)

BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE

显示圆形指示器和标题(水平显示)

BannerConfig.LEFT

指示器居左

BannerConfig.CENTER

指示器居中

BannerConfig.RIGHT

指示器居右

动画常量类

常量类名

Transformer.Default

Transformer.Accordion

Transformer.BackgroundToForeground

Transformer.ForegroundToBackground

Transformer.CubeIn

Transformer.CubeOut

Transformer.DepthPage

Transformer.FlipHorizontal

Transformer.FlipVertical

Transformer.RotateDown

Transformer.RotateUp

Transformer.ScaleInOut

Transformer.Stack

Transformer.Tablet

Transformer.ZoomIn

Transformer.ZoomOut

Transformer.ZoomOutSlide

方法

方法名

描述

setBannerStyle(int   bannerStyle)

设置轮播样式(默认为Banner.NOT_INDICATOR)

setIndicatorGravity(int   type)

设置指示器位置(没有标题默认为右边,有标题时默认左边)

isAutoPlay(boolean   isAutoPlay)

设置是否自动轮播(默认自动)

setBannerTitle(String[]   titles)

设置轮播要显示的标题和图片对应(如果不传默认不显示标题)

setBannerTitleList(List titles)

设置轮播要显示的标题和图片对应(如果不传默认不显示标题)

setDelayTime(int   time)

设置轮播图片间隔时间(默认为2000)

setImages(Object[]/List<?>   imagesUrl)

设置轮播图片(所有设置参数方法都放在此方法之前执行)

setImages(Object[]/List<?>   imagesUrl,OnLoadImageListener listener)

设置轮播图片,并且自定义图片加载方式

setOnBannerClickListener(this)

设置点击事件,下标是从1开始

setOnBannerImageListener(this)

设置图片加载事件,可以自定义图片加载方式

setOnPageChangeListener(this)

viewpager的滑动监听

setBannerAnimation(Class<?   extends PageTransformer> transformer)

设置viewpager的默认动画,传值见动画表

setPageTransformer(boolean   reverseDrawingOrder, ViewPager.PageTransformer transformer)

设置viewpager的自定义动画

[ 点击查看 ViewPager的PageTransformer用法 ]

使用步骤

在布局文件中添加Banner

简单使用
1
2
3
4
5
<com.youth.banner.Banner
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/banner"
    android:layout_width="match_parent"
    android:layout_height="高度自己动态设置" />
xml自定义属性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<com.youth.banner.Banner
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/banner"
    android:layout_width="match_parent"
    android:layout_height="高度自己设置"
    app:default_image="默认加载图片"
    app:delay_time="轮播间隔时间"
    app:is_auto_play="是否自动轮播"
    app:indicator_margin="指示器之间的间距"
    app:indicator_drawable_selected="指示器选中效果"
    app:indicator_drawable_unselected="指示器未选中效果"
    app:indicator_height="指示器圆形按钮的高度"
    app:indicator_width="指示器圆形按钮的宽度"
    app:title_background="标题栏的背景色"
    app:title_height="标题栏高度"
    app:title_textcolor="标题字体颜色"
    app:title_textsize="标题字体大小"/>

在Activity或者Fragment中配置Banner

1
2
3
4
5
6
7
8
9
10
11
12
13
private Banner banner;
String[] images= new String[] {"url"};
String[] titles=new String[]{"标题"};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    banner = (Banner) findViewById(R.id.banner);
    /**
     *一步搞定,设置图片就行了(如果需要其他设置,请在setImages之前完成)
     */
    banner.setImages(images);
}

原文链接:http://www.apkbus.com/blog-705730-62485.html

0人推荐
随时随地看视频
慕课网APP