Banner實現圖片輪播

開源框架Banner實現圖片輪播

常量

常量名稱 描述 所屬方法
BannerConfig.NOT_INDICATOR 不顯示指示器和標題 setBannerStyle
BannerConfig.CIRCLE_INDICATOR 顯示圓形指示器 setBannerStyle
BannerConfig.NUM_INDICATOR 顯示數字指示器 setBannerStyle
BannerConfig.NUM_INDICATOR_TITLE 顯示數字指示器和標題 setBannerStyle
BannerConfig.CIRCLE_INDICATOR_TITLE 顯示圓形指示器和標題(垂直顯示) setBannerStyle
BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE 顯示圓形指示器和標題(水平顯示) setBannerStyle
BannerConfig.LEFT 指示器居左 setIndicatorGravity
BannerConfig.CENTER 指示器居中 setIndicatorGravity
BannerConfig.RIGHT 指示器居右 setIndicatorGravity

動畫常量類(setBannerAnimation方法調用)

常量類名
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) 設置輪播樣式(默認爲CIRCLE_INDICATOR)
setIndicatorGravity(int type) 設置指示器位置(沒有標題默認爲右邊,有標題時默認左邊)
isAutoPlay(boolean isAutoPlay) 設置是否自動輪播(默認自動)
setViewPagerIsScroll(boolean isScroll) 設置是否允許手動滑動輪播圖(默認true) 1.4.5開始
update(List<?> imageUrls,List titles) 更新圖片和標題 1.4.5開始
update(List<?> imageUrls) 更新圖片 1.4.5開始
startAutoPlay() 開始輪播 1.4開始,此方法只作用於banner加載完畢-->需要在start()後執行
stopAutoPlay() 結束輪播 1.4開始,此方法只作用於banner加載完畢-->需要在start()後執行
start() 開始進行banner渲染 1.4開始
setOffscreenPageLimit(int limit) 同viewpager的方法作用一樣 1.4.2開始
setBannerTitle(String[] titles) 設置輪播要顯示的標題和圖片對應(如果不傳默認不顯示標題) 1.3.3結束
setBannerTitleList(List titles) 設置輪播要顯示的標題和圖片對應(如果不傳默認不顯示標題) 1.3.3結束
setBannerTitles(List titles) 設置輪播要顯示的標題和圖片對應(如果不傳默認不顯示標題) 1.4開始
setDelayTime(int time) 設置輪播圖片間隔時間(單位毫秒,默認爲2000)
setImages(Object[]/List<?> imagesUrl) 設置輪播圖片(所有設置參數方法都放在此方法之前執行) 1.4後去掉數組傳參
setImages(Object[]/List<?> imagesUrl,OnLoadImageListener listener) 設置輪播圖片,並且自定義圖片加載方式 1.3.3結束
setOnBannerClickListener(this) 設置點擊事件,下標是從1開始 無(1.4.9以後廢棄了)
setOnBannerListener(this) 設置點擊事件,下標是從0開始 1.4.9以後
setOnLoadImageListener(this) 設置圖片加載事件,可以自定義圖片加載方式 1.3.3結束
setImageLoader(Object implements ImageLoader) 設置圖片加載器 1.4開始
setOnPageChangeListener(this) 設置viewpager的滑動監聽
setBannerAnimation(Class<? extends PageTransformer> transformer) 設置viewpager的默認動畫,傳值見動畫表
setPageTransformer(boolean reverseDrawingOrder, ViewPager.PageTransformer transformer) 設置viewpager的自定義動畫  
1.添加依賴庫

compile 'com.youth.banner:banner:1.4.9'
2.在清單文件中加權限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
//讀取外置存儲卡權限
 <uses-permission android:name="android.permission.INTERNET" />
//獲取網絡權限
3.在佈局文件中加Banner

<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="高度自定義" />
4.給圖片集合添加數據和實例化

banner = (Banner) findViewById(R.id.banner);
list=new ArrayList<>();
listtu=new ArrayList<>();
list.add("http://img.poco.cn/mypoco/myphoto/20071007/11/20071007114140_1251314291.jpg");
list.add("http://a3.att.hudong.com/72/76/01300000012339118647690465772.jpg");
list.add("http://p1.qqyou.com/pic/uploadpic/2012-4/21/2012042120062170120.jpg");
listtu.add("啦啦啦");
listtu.add("啦啦啦德瑪");
listtu.add("啦啦啦西亞");
5.設置Banner 屬性

banner.setIndicatorGravity(BannerConfig.CIRCLE_INDICATOR);
//設置指示器位置(當banner模式中有指示器時)
 banner.setBannerTitles(listtu);
//添加標題
 banner.setImageLoader(new GlideImageLoader());
//設置圖片加載器
 banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE);
 //設置banner樣式
 banner.setImages(list);
//設置圖片集合
 banner.isAutoPlay(true);
 //設置自動輪播,默認爲true
banner.setDelayTime(2500);
 //設置輪播時間單位毫秒
banner.start();
//調用
6.圖片加載器重寫

          注意:
          1.圖片加載器由自己選擇,這裏不限制,只是提供幾種使用方法
          2.返回的圖片路徑爲Object類型,由於不能確定你到底使用的那種圖片加載器,
          傳輸的到的是什麼格式,那麼這種就使用Object接收和返回,你只需要強轉成你傳輸的類型就行,
          切記不要胡亂強轉!
       
 public void displayImage(Context context, Object path, ImageView imageView) {
        //集合是String類型所以轉成String 
        Glide.with(context).load( (String) path).into(imageView);
    }
}

最後大神鏈接:

https://github.com/youth5201314/banner


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章