今天給大家講解的是Android輪播圖控件CustomBanner的使用宏侍。CustomBanner是我在GitHub上傳的一個(gè)Android輪播圖控件坯门。在上一篇博客 《Android輪播圖控件的實(shí)現(xiàn)詳解》中,我詳細(xì)分析了CustomBanner的實(shí)現(xiàn)思路和核心代碼寇仓,還沒(méi)有看過(guò)的同學(xué)建議先看一下惊橱,這樣無(wú)論是你想自己實(shí)現(xiàn)一個(gè)輪播圖控件局荚,還是使用CustomBanner都大有好處最住。
現(xiàn)在我們開始講解CustomBanner的具體使用钞澳,CustomBanner在GitHub的地址是:https://github.com/donkingliang/CustomBanner
1、引入依賴
在Project的build.gradle在添加以下代碼
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
在Module的build.gradle在添加以下代碼
dependencies {
compile 'com.github.donkingliang:CustomBanner:1.1.0'
}
2涨缚、編寫布局
<!-- 設(shè)置普通指示器 -->
<com.donkingliang.banner.CustomBanner
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="180dp"
app:indicatorStyle="ORDINARY" //指示器類型 普通指示器
app:indicatorGravity="CENTER_HORIZONTAL" //指示器的位置 有左轧粟。中、右三個(gè)值
app:indicatorSelectRes="@drawable/shape_point_select" //指示器的選中的樣式
app:indicatorUnSelectRes="@drawable/shape_point_unselect" //指示器的未選中的樣式
app:indicatorInterval="5dp"/> //指示器的點(diǎn)的間隔
<!-- 設(shè)置數(shù)字指示器 -->
<com.donkingliang.banner.CustomBanner
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="180dp"
app:indicatorStyle="NUMBER" //指示器類型 數(shù)字指示器
app:indicatorGravity="RIGHT"/> //指示器的位置 有左脓魏。中兰吟、右三個(gè)值
<!-- 設(shè)置沒(méi)有指示器 -->
<com.donkingliang.banner.CustomBanner
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="180dp"
app:indicatorStyle="NONE"/> //指示器類型 沒(méi)有指示器
3、CustomBanner的方法使用
1)茂翔、設(shè)置數(shù)據(jù)
mBanner.setPages(new CustomBanner.ViewCreator<String>() {
@Override
public View createView(Context context, int position) {
//這里返回的是輪播圖的項(xiàng)的布局 支持任何的布局
//position 輪播圖的第幾個(gè)項(xiàng)
ImageView imageView = new ImageView(context);
return imageView;
}
@Override
public void updateUI(Context context, View view, int position, String data) {
//在這里更新輪播圖的UI
//position 輪播圖的第幾個(gè)項(xiàng)
//view 輪播圖當(dāng)前項(xiàng)的布局 它是createView方法的返回值
//data 輪播圖當(dāng)前項(xiàng)對(duì)應(yīng)的數(shù)據(jù)
Glide.with(context).load(data).into((ImageView) view);
}
}, beans);
輪播圖的布局支持任何的布局揽祥,輪播圖的數(shù)據(jù)類型也是支持任何的數(shù)據(jù)類型,這里只是用ImageView和String舉例而已檩电。
2)、其他方法的使用
//設(shè)置指示器類型,有普通指示器(ORDINARY)俐末、數(shù)字指示器(NUMBER)和沒(méi)有指示器(NONE)三種類型料按。
//這個(gè)方法跟在布局中設(shè)置app:indicatorStyle是一樣的
mBanner.setIndicatorStyle(CustomBanner.IndicatorStyle.ORDINARY);
//設(shè)置兩個(gè)點(diǎn)圖片作為翻頁(yè)指示器,只有指示器為普通指示器(ORDINARY)時(shí)有用卓箫。
//這個(gè)方法跟在布局中設(shè)置app:indicatorSelectRes载矿、app:indicatorUnSelectRes是一樣的。
//第一個(gè)參數(shù)是指示器的選中的樣式烹卒,第二個(gè)參數(shù)是指示器的未選中的樣式闷盔。
mBanner.setIndicatorRes(R.drawable.shape_point_select,R.drawable.shape_point_unselect);
//設(shè)置指示器的指示點(diǎn)間隔旅急,只有指示器為普通指示器(ORDINARY)時(shí)有用逢勾。
//這個(gè)方法跟在布局中設(shè)置app:indicatorInterval是一樣的。
mBanner.setIndicatorInterval(20)
//設(shè)置指示器的方向藐吮。
//這個(gè)方法跟在布局中設(shè)置app:indicatorGravity是一樣的溺拱。
mBanner.setIndicatorGravity(CustomBanner.IndicatorGravity.CENTER_HORIZONTAL)
//設(shè)置輪播圖自動(dòng)滾動(dòng)輪播,參數(shù)是輪播圖滾動(dòng)的間隔時(shí)間
//輪播圖默認(rèn)是不自動(dòng)滾動(dòng)的谣辞,如果不調(diào)用這個(gè)方法迫摔,輪播圖將不會(huì)自動(dòng)滾動(dòng)。
mBanner.startTurning(3600);
//停止輪播圖的自動(dòng)滾動(dòng)
mBanner.stopTurning();
//設(shè)置輪播圖的滾動(dòng)速度
mBanner.setScrollDuration(500);
//設(shè)置輪播圖的點(diǎn)擊事件
mBanner.setOnPageClickListener(new CustomBanner.OnPageClickListener<String>() {
@Override
public void onPageClick(int position, String str) {
//position 輪播圖的第幾個(gè)項(xiàng)
//str 輪播圖當(dāng)前項(xiàng)對(duì)應(yīng)的數(shù)據(jù)
}
});
以上是CustomBanner的主要常用方法泥从,更多方法請(qǐng)查看源碼句占。
3)、CustomBanner的很多方法都支持方法的鏈?zhǔn)秸{(diào)用躯嫉,比如以下的方法可以這樣調(diào)用纱烘。
mBanner.setPages(參數(shù), 參數(shù)).setIndicatorRes(參數(shù), 參數(shù)).setIndicatorGravity(參數(shù)).startTurning(參數(shù));
效果圖
CustomBanner的使用就介紹到這里了,大家在使用中如果發(fā)現(xiàn)什么問(wèn)題或是有什么建議和敬,歡迎評(píng)論留言凹炸。
文章已同步到我的CSDN博客