All Projects → leveychen → Rxbanner

leveychen / Rxbanner

一个灵活可制定的基于 Recyclerview 的轮播图控件,支持自动轮播,无限循环。 同时可关闭无限循环变成 引导页 ,带有引导完成接口回调

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Rxbanner

Admobadapter
It wraps your Adapter to display Admob native ads and banners in a ListView/RecyclerView data set. It based on the Yahoo fetchr project https://github.com/yahoo/fetchr
Stars: ✭ 224 (+190.91%)
Mutual labels:  recyclerview, banner
Banner
Android Viewpager rotation control, application guide page controls, support vertical, horizontal cycle scrolling, extended from view support animation, indicator extension and so on;Android viewpager轮播图控件、app引导页控件,支持垂直、水平循环滚动,扩展自viewpager 支持动画,指示器扩展等。
Stars: ✭ 96 (+24.68%)
Mutual labels:  recyclerview, banner
Pagerecyclerview
PageRecyclerView achieves page turning function and unlimited carousel
Stars: ✭ 241 (+212.99%)
Mutual labels:  recyclerview, banner
Recyclerbanner
用RecyclerView实现无限轮播图,有普通版和3d版
Stars: ✭ 1,600 (+1977.92%)
Mutual labels:  recyclerview, banner
Cardslideview
一行代码实现ViewPager卡片效果,比ViewPager2更强大,底层同样是RecyclerView
Stars: ✭ 301 (+290.91%)
Mutual labels:  recyclerview, banner
Fwcyclescrollview
轮播控件:支持本地图片、网络图片、自定义视图,轮播分页控件有多重可选方案,轮播次数、间隔时间也可设置,更多配置请参考”可设置参数“。提供OC使用Demo。
Stars: ✭ 59 (-23.38%)
Mutual labels:  banner
Horizontal Calendar
A material horizontal calendar view for Android based on RecyclerView
Stars: ✭ 1,155 (+1400%)
Mutual labels:  recyclerview
Cardswipelayout
Use RecyclerView to achieve card swipe layout , like Tantan . (模仿探探卡片滑动效果的布局)
Stars: ✭ 1,081 (+1303.9%)
Mutual labels:  recyclerview
Rendererrecyclerviewadapter
A single adapter with multiple view types for the whole project
Stars: ✭ 1,061 (+1277.92%)
Mutual labels:  recyclerview
Elements
⚒ Modular components for RecyclerView development enforcing clean, reusable and testable code, with built-in support for paging and complex hierarchies of data.
Stars: ✭ 75 (-2.6%)
Mutual labels:  recyclerview
Android Cardview Recyclerview
Let's play with Android CardView, RecyclerView, Retrofit and Picasso Library. You can read details procedure about those library in my Bengali blog site.
Stars: ✭ 72 (-6.49%)
Mutual labels:  recyclerview
Dividers For Recyclerview
📋 A simple demo to demonstrate how to draw dividers for RecyclerView
Stars: ✭ 65 (-15.58%)
Mutual labels:  recyclerview
Ultimaterefreshview
UltimateRefreshView 实现下拉刷新,上拉加载更多的轻量级库;支持RecyclerView ,ListView ,ScrollView & WebView
Stars: ✭ 64 (-16.88%)
Mutual labels:  recyclerview
Collapsingrefresh
AppBarLayout+ViewPager+RecyclerView的刷新功能
Stars: ✭ 69 (-10.39%)
Mutual labels:  recyclerview
Notificationbanner
Easy to use pop up notification banner for in app local notification.
Stars: ✭ 55 (-28.57%)
Mutual labels:  banner
Recyclerpager
Using RecyclerView and SnapHelper replace ViewPager
Stars: ✭ 73 (-5.19%)
Mutual labels:  recyclerview
Chameleon
🦎Chameleoen deals with the Status of RecyclerView.
Stars: ✭ 52 (-32.47%)
Mutual labels:  recyclerview
Tc Material Design
Série de artigos sobre o Material Design Android
Stars: ✭ 64 (-16.88%)
Mutual labels:  recyclerview
Groupedrecyclerviewadapter
GroupedRecyclerViewAdapter可以很方便的实现RecyclerView的分组显示,并且每个组都可以包含组头、组尾和子项;可以方便实现多种Type类型的列表,可以实现如QQ联系人的列表一样的列表展开收起功能,还可以实现头部悬浮吸顶功能等。
Stars: ✭ 1,163 (+1410.39%)
Mutual labels:  recyclerview
Nativescript Admob
NativeScript plugin to earn some precious 💰💰 with ads by Google AdMob
Stars: ✭ 64 (-16.88%)
Mutual labels:  banner

RxBanner

[停止维护]

API Apache 2.0 License

一个灵活可制定的基于 Recyclerview 的轮播图控件,支持自动轮播,无限循环。

同时可关闭无限循环变成 引导页 ,带有引导完成接口回调,详见demo

中文文档   English

更新日志

1.1.3

1.完善一些点击事件的逻辑

2.新增当 rb_canSwipe = false 时的点击事件响应

3.修复 自定义指示器 刷新数据时没有默认选中的问题

1.1.2

1.新增 引导页 监听 RxBannerGuideFinishedListener ,调整引导页功能实现

2.新增单张图片时可否滑动设置 rb_canSwipeWhenSingle, 仅单张图片时有效

1.1.1

1.新增滑动阻尼设置 rb_flingDamping, 阻尼越大滑动越困难,默认为RecyclerView标准最小滑动值. 修复 issues #2

2.新增自定义指示器,用法与说明请下翻至 指示器 部分, 由 CircleIndicator 修改整合,感谢原作者, 原始需求 issues #3

Demo Apk

fir.im      rxbanner_demo.apk

github      rxbanner_demo.apk

预览

    

    

引用

1.添加 jitpack

    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }

2.导入引用    

    implementation 'com.github.leveychen:RxBanner:1.1.4'

LATEST RELEASE

依赖出错问题

由于本项目采用28.0.0-rc02的版本编译,28以下版本可能会出现依赖失败的情况,处理办法如下:

app.gradle 最下面添加

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                //这里指定需要统一的依赖版本,这里统一为27.1.1,这里以27.1.1为例
                details.useVersion '27.1.1'
            }
        }
    }
}

强制使用你的主项目的编译版本

用法

layout

see Attributes

    <cn.levey.bannerlib.RxBanner
        android:id="@+id/rx_banner"
        android:layout_width="match_parent"
        android:layout_height="160dp"/>

java

    banner = findViewById(R.id.rx_banner);
    banner
        .setLoader(new ImageLoader())               // see `image loader`
        .setConfig(config)                          // see `config`
        .setDatas(iamgesUrls, titles)
        .start();

一些 image loader 的栗子

Fresco     Glide     Picasso     UniversalImageLoader

可以愉快的玩耍了,下面是一些可选内容

配置信息 -可选

自定义配置信息,所有参数设置均和 xml 布局里一致,优先级高于 xml 布局文件

    RxBannerConfig config = banner.getConfig();
    config.set(value);
    ...
    banner.setConfig(config);
    banner.start();

setConfig() 必须在 setDatas()start() 之前设置。

监听器 -可选

    点击图片时的回调
    banner.setOnBannerClickListener(new RxBannerClickListener())
        onItemClick(int position, Object data)
        onItemLongClick(int position, Object data)

    //点击标题时的回调
    banner.setOnBannerTitleClickListener(new RxBannerTitleClickListener())
        onTitleClick(int position, String title);

    //图片切换时的回调
    banner.setOnBannerChangeListener(new RxBannerChangeListener())
        onBannerSelected(int position)
        onBannerScrollStateChanged(int state)

    //一旦定义引导页监听就可变成引导页
    banner.setOnGuideFinishedListener(new RxBannerGuideFinishedListener()
        onGuideFinished()

生命周期

更好的 在 Activity 、 Fragment 和其他 view 中管理生命周期

    banner.onResume()
    banner.onPause()
    banner.onDestroy()

全局设置 -可选

    RxBannerConfig
        .getInstance()
        .setDebug(true)  // debug: default false
        .setScrollStateChangedListener(new RxBannerScrollStateChangedListener()
        .setLoader(new RxBannerImageViewLoader())
        .setOrientation(LinearLayout.HORIZONTAL)
        .setOrderType(RxBannerConfig.OrderType.ASC)
        .setTimeInterval(5000);

引导页

定义一下布局就行了

activity_guide.xml

为了更好的引导页体验,最好关闭无限循环和自动轮播

    banner:rb_infinite="false"
    banner:rb_autoPlay="false"

然后监听一下回调

    banner.setOnGuideFinishedListener(new RxBannerGuideFinishedListener()
        onGuideFinished()
        // todo

大功告成

属性

所有属性均以 rb_ 开头

Banner

属性 格式 初始值 描述
rb_autoPlay boolean true rb_timeInterval 的间隔自动播放
rb_infinite boolean true 是否无限循环,关闭无限循环并且设置引导页回调即可变成引导页
rb_canSwipe boolean true 是否允许手动滑动,此设置与自动轮播无关
rb_canSwipeWhenSingle boolean true 单张图片时是否能手动滑动,此设置与自动轮播无关
rb_aspectRatio float / 宽高比,数值必须大于0,拿16:9为例就是1.7778,高度等于宽度则为1,同时 android:layout_height 不能为 wrap_content 或者 match_parent。需要随便定义一个数值, 比如 1dp。当 orientation = vertical 且在ScrollView中时,高度不推荐大于父容器,否则可能滑动被拦截,导致且在ScrollView中时无法滑动
rb_timeInterval integer (millisecond) 5000 200毫秒以上
rb_orientation horizontal / vertical horizontal /
rb_itemPercent integer 100 宽度或者高度的百分比,取决于 rb_orientation 方向
rb_itemScale float 1 缩放比
rb_itemSpace dimension 0 两个item之间的间距
rb_centerAlpha float 1 中间 item 透明度
rb_sideAlpha float 1 旁边 item 透明度
rb_itemMoveSpeed float 1 滑动速度
rb_flingDamping float 1 滑动阻尼,越大越不容易滑动
rb_orderType asc / desc asc 升序或者降序排列
rb_viewPaperMode boolean true ViewPaper 一样,一次滑动一页
rb_emptyViewText string '暂无图片' 当图片为空且 'rb_emptyViewResource' 没有定义时
rb_emptyViewResource reference / 当图片为空时显示

标题

属性 格式 初始值 描述
rb_title_visible boolean true /
rb_title_gravity gravity START /
rb_title_layout_gravity gravity CENTER_HORIZONTAL and BOTTOM /
rb_title_margin dimension 0dp margin
rb_title_padding dimension 3dp padding
rb_title_width dimension / enum MATCH_PARENT /
rb_title_height dimension / enum WRAP_CONTENT /
rb_title_size dimension 14sp /
rb_title_color color Color.WHITE /
rb_title_backgroundColor color #55000000 /
rb_title_backgroundResource reference / /
rb_title_marquee boolean true 跑马灯
rb_title_lineSpacingMultiplier float 1.0f lineSpacingMultiplier

指示器

属性 格式 初始值 描述
rb_indicator_visible boolean true /
rb_indicator_clickable boolean true 是否可以点击指示器来切换banner
rb_indicator_orientation horizontal / vertical horizontal /
rb_indicator_layout_gravity gravity BOTTOM / END /
rb_indicator_radius dimension 5dp 指示器大小
rb_indicator_textSize dimension 14sp numeric numeric_circle 专用
rb_indicator_textColor color Color.WHITE numeric numeric_circle 专用
rb_indicator_backgroundColor color / numeric numeric_circle 专用
rb_indicator_backgroundResource reference / numeric numeric_circle 专用
rb_indicator_scale float 0.7 scale or scale_down 专用
rb_indicator_margin dimension 8dp margin
rb_indicator_padding dimension 3dp padding
rb_indicator_selected_color color #FFFFFF /
rb_indicator_unselected_color color #33FFFFFF /
rb_indicator_interactiveAnimation boolean false /
rb_indicator_animationDuration integer 350 毫秒
rb_indicator_animationType type none see AnimationType
rb_indicator_rtl_mode on / off / auto auto 支持左右自动布局 RTL
rb_indicator_selectedResource reference / custom 专用,用法参考 CircleIndicator
rb_indicator_unselectedResource reference / custom 专用,用法参考 CircleIndicator
rb_indicator_animatorResource reference / custom 专用,用法参考 CircleIndicator
rb_indicator_animatorReverseResource reference / custom 专用,用法参考 CircleIndicator

AnimationType

这里抄的,了解一下 PageIndicatorView / CircleIndicator

名称 属性 预览
AnimationType.NONE none anim_none
AnimationType.COLOR color anim_color
AnimationType.SCALE scale anim_scale
AnimationType.SCALE_DOWN scale_down anim_swap
AnimationType.SLIDE slide anim_slide
AnimationType.WORM worm anim_worm
AnimationType.FILL fill anim_worm
AnimationType.THIN_WORM thin_worm anim_thin_worm
AnimationType.DROP drop anim_drop
AnimationType.SWAP swap anim_swap
AnimationType.NUMERIC numeric 1/8
AnimationType.NUMERIC_CIRCLE numeric_circle (1/8)
AnimationType.CUSTOM custom 参考 CircleIndicator

权限

显示网络图片

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

混淆

    -keep class cn.levey.bannerlib.** {
        *;
    }

Release Note

See release notes on Github Releases

Thanks

ViewPagerLayoutManager PageIndicatorView CircleIndicator

License

Apache-2.0. See LICENSE for detail

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].