A simple, responsive, touch-enabled, RxJava2 based image slider.
RxJava and ImageLoader(either Picasso or Glide) dependency is required, it's not recommend use this library directly if your project not include RxJava or ImageLoader.
compile 'com.zac4j.library:Banner:0.0.1'
compile 'com.github.bumptech.glide:glide:3.7.0'
// compile 'com.squareup.picasso:picasso:2.5.2' // pick glide or picasso
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.0.1'<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<com.zac4j.widget.BannerView
android:id="@id/banner_view"
android:layout_width="match_parent"
android:layout_height="@dimen/banner_height_small"
/>
</LinearLayout>public class MainActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) {
...
BannerView bannerView = (BannerView) findViewById(R.id.banner_view);
showBanner(bannerView);
}
private int[] getOfflineRes() {
return new int[] { R.drawable.a, R.drawable.b, R.drawable.c };
}
private List<String> getOnlineRes() {
List<String> imageUrlList = new ArrayList<>();
imageUrlList.add("http://7xom3t.com1.z0.glb.clouddn.com/a.png");
imageUrlList.add("http://7xom3t.com1.z0.glb.clouddn.com/b.jpg");
imageUrlList.add("http://7xom3t.com1.z0.glb.clouddn.com/c.jpg");
return imageUrlList;
}
private void showBanner(BannerView bannerView) {
Banner banner = new Banner.Builder().bind(bannerView)
.offlineRes(getOfflineRes())
.onlineRes(getOnlineRes())
.engine(ImageLoader.GLIDE)
.onClick(mListener)
.autoSlide(true)
.build();
banner.show();
}
private Banner.OnClickListener mListener = new Banner.OnClickListener() {
@Override public void onClick(int position) {
Toast.makeText(MainActivity.this, "Position >> " + position, Toast.LENGTH_SHORT).show();
}
};
}Write your own logic using these APIs:
bind(BannerView bannerView)Bind BannerView in your layout with Banner Builder.engine(ImageLoader engine)Image loader engine, currently only support Glide or Picasso.offlineRes(int[] imgUris)Load local image resources and display it.onlineRes(List<String> imgUrlList)Download online image resources and display it.onClick(Banenr.OnClickListener listener)On banner item click callback.autoSlide(boolean isAutoSlide)If image slider is auto slide.
The code is available under the Apache License
