RecyclerViewBanner:使用 RecyclerView 做的輪播圖
RecyclerViewBanner
使用RecyclerView做的輪播圖
前言
之前做的輪播圖,對于十幾個圖片什么的能夠滿足,但是萬一有幾千張,幾萬張就容易造成內存泄露,使用RecyclerView做的輪播,可以利用它自身的復用機制,比較節省內存。所以這種方式感覺效果更好。
效果圖
使用方法
Step 1. Add the JitPack repository to your build file
Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
compile 'com.github.loonggg:RecyclerViewBanner:v1.1'
}
Step 3. There are a few xml attributes to customise the RecyclerViewBanner
- pointFocusBg 設置底部導航小圓點的選中狀態顏色
- pointUnfocusBg 設置底部導航小圓點的未選中狀態顏色
- interval 設置輪播圖滾動間隔時間
- isShowPoint 設置是否顯示底部指示導航小圓點
Example
<com.loonggg.rvbanner.lib.RecyclerViewBanner
android:id="@+id/rv_banner"
android:layout_width="match_parent"
android:layout_height="150dp"
loonggg:interval="3000"
loonggg:isShowPoint="true" />
Step 4. Impelement Listener
recyclerViewBanner = (RecyclerViewBanner) findViewById(R.id.rv_banner);
final List<Banner> banners = new ArrayList<>();
for (int i = 0; i < 2; i++) {
banners.add(new Banner("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1487221110004&di=d6043e4b0c90ddf3ea5096c3d8eb8f58&imgtype=0&src=http%3A%2F%2Fimage.tianjimedia.com%2FuploadImages%2F2014%2F067%2F5116EPAUD762_1000x500.jpg"));
banners.add(new Banner("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1487221129421&di=c085432cf7c15836f8a6479138740f39&imgtype=0&src=http%3A%2F%2Fimage85.360doc.com%2FDownloadImg%2F2015%2F05%2F0517%2F53199602_2.jpg"));
banners.add(new Banner("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1487221161254&di=fbb99c5dad3d5a2a2c8b0b44e8c0e081&imgtype=0&src=http%3A%2F%2Fimage.tianjimedia.com%2FuploadImages%2F2013%2F255%2FP52AOTE73EIG_1000x500.jpg"));
}
recyclerViewBanner.isShowIndicatorPoint(true);
recyclerViewBanner.setRvBannerDatas(banners);
recyclerViewBanner.setOnSwitchRvBannerListener(new RecyclerViewBanner.OnSwitchRvBannerListener() {
@Override
public void switchBanner(int position, ImageView bannerView) {
Glide.with(bannerView.getContext()).load(banners.get(position % banners.size()).getUrl()).placeholder(R.mipmap.ic_launcher).into(bannerView);
}
});
recyclerViewBanner.setOnRvBannerClickListener(new RecyclerViewBanner.OnRvBannerClickListener() {
@Override
public void onClick(int position) {
//點擊事件
}
});
本文由用戶 taidi5 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!