Android 實現輪播效果(利用開源控制元件)
阿新 • • 發佈:2019-05-17
首先匯入依賴
implementation 'com.youth.banner:banner:1.4.10'
在佈局檔案中新增
<com.youth.banner.Banner
android:id="@+id/fragment_main_home_banner"
android:layout_width="match_parent"
android:layout_height="200dp" />
重寫圖片載入器
public class GlideImageLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { /** 注意: 1.圖片載入器由自己選擇,這裡不限制,只是提供幾種使用方法 2.返回的圖片路徑為Object型別,由於不能確定你到底使用的那種圖片載入器, 傳輸的到的是什麼格式,那麼這種就使用Object接收和返回,你只需要強轉成你傳輸的型別就行, 切記不要胡亂強轉! */ // eg: //Glide 載入圖片簡單用法 Glide.with(context).load(path).into(imageView); //Picasso 載入圖片簡單用法 // Picasso.with(context).load(path).into(imageView); //用fresco載入圖片簡單用法,記得要寫下面的createImageView方法 // Uri uri = Uri.parse((String) path); // imageView.setImageURI(uri); } //提供createImageView 方法,如果不用可以不重寫這個方法,主要是方便自定義ImageView的建立 // @Override // public ImageView createImageView(Context context) { // //使用fresco,需要建立它提供的ImageView,當然你也可以用自己自定義的具有圖片載入功能的ImageView // SimpleDraweeView simpleDraweeView=new SimpleDraweeView(context); // return simpleDraweeView; // } }
在Activity或者Fragment中配置
Banner banner = (Banner) findViewById(R.id.fragment_main_home_banner);
//設定banner樣式
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR);
//設定圖片載入器
banner.setImageLoader(new GlideImageLoader());
//設定圖片集合
List<Integer> image = new ArrayList<>();
image.add(R.drawable.icon);
image.add(R.drawable.welcome_bg);
banner.setImages(image);
//設定banner動畫效果
banner.setBannerAnimation(Transformer.DepthPage);
//設定標題集合(當banner樣式有顯示title時)
// List<String> titles = new ArrayList<>();
// titles.add("圖1");
// titles.add("圖2");
// banner.setBannerTitles(null);
//設定自動輪播,預設為true
banner.isAutoPlay(true);
//設定輪播時間
banner.setDelayTime(3000);
//設定指示器位置(當banner模式中有指示器時)
banner.setIndicatorGravity(BannerConfig.CENTER);
//banner設定方法全部呼叫完畢時最後呼叫
banner.start();