(二十)Android App开发推荐几个gitHub上排名靠前常用框架

Android最全UI库合集
https://davis.blog.csdn.net/article/details/104820446?spm=1001.2101.3001.6650.9&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-104820446-blog-45787729.t0_edu_mlt&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-104820446-blog-45787729.t0_edu_mlt&utm_relevant_index=17
Android最全UI库合集
1.Banner gitHub上5000多颗星
现在的绝大数app都有banner界面,实现循环播放多个广告图片和手动滑动循环等功能。因为ViewPager并不支持循环翻页, 所以要实现循环还得需要自己去动手,我就把项目中的控件剔了出来,希望大家觉得有用。目前框架可以进行不同样式、不同动画设置, 以及完善的api方法能满足大部分的需求了。

dependencies{
    compile 'com.youth.banner:banner:1.4.10'  //最新版本
}

详细请看:https://github.com/youth5201314/banner

  1. BaseRecyclerViewAdapterHelper gitHub上13000多颗星
    BRVAH是一个强大的RecyclerAdapter框架(什么是RecyclerView?),它能节约开发者大量的开发时间,集成了大部分列表常用需求解决方案。为什么会有它?请查看「Android开源框架BRVAH由来篇」该框架于2016年4月10号发布的第1个版本到现在已经一年多了,经历了800多次代码提交,140多次版本打包,修复了1000多个问题,获得了9000多star,非常感谢大家的使用以及反馈。
    dependencies {
            compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'
    }

gitHub地址:https://github.com/CymChad/BaseRecyclerViewAdapterHelper

目前BaseRecyclerViewAdapterHelper已好久不维护:
可尝试以下代码库
https://github.com/hiliving/BRV

3.FlycoDialog_Master gitHub上将近2000多颗星
一个强大的Android对话框库,简化自定义对话框.支持2.2+.各种分享弹窗效果,弹出各种dialog,顶部弹出,底部弹出,分享页面布局等等,可查看demo.apk先预览
apk下载地址:https://fir.im/mj9p
语法简单几行代码全部搞定
gitHub地址:https://github.com/H07000223/FlycoDialog_Master

如果想要实现更多的自定义样式 包括对弹窗中每个item条目布局的自定义 请点击链接
https://github.com/shaoshuai904/XStyleDialog

4.SmartRefreshLayout gitHub上将近1万1千颗星
下拉刷新、上拉加载、二级刷新、淘宝二楼、RefreshLayout、OverScroll,Android智能下拉刷新框架,支持越界回弹、越界拖动,具有极强的扩展性,集成了几十种炫酷的Header和 Footer。

<com.scwang.smartrefresh.layout.SmartRefreshLayout
        android:id="@+id/scroll_home"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/include_home_title">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <pl.droidsonroids.gif.GifImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:layout_margin="5dp"
                android:src="@mipmap/ic_refresh" />
        </RelativeLayout>

        <android.support.v7.widget.RecyclerView
            android:id="@+id/rv_home"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </com.scwang.smartrefresh.layout.SmartRefreshLayout>

pl.droidsonroids.gif.GifImageView是自定义修改的布局
gitHub地址:https://github.com/scwang90/SmartRefreshLayout

5.沉浸式框架框架:gitHub上3000多颗星
android 4.4以上沉浸式状态栏和沉浸式导航栏管理,包括状态栏字体颜色,一句代码轻松实现,以及对bar的其他设置,尤其解决4.4以下兼容性问题一行代码直接搞定

compile 'com.gyf.barlibrary:barlibrary:2.3.0'

gitHub地址:https://github.com/gyf-dev/ImmersionBar

6.webview框架:AgentWeb gitHub上3000多颗星
AgentWeb 是一个基于的 Android WebView ,极度容易使用以及功能强大的库,提供了 Android WebView 一系列的问题解决方案 ,并且轻量和极度灵活

compile 'com.just.agentweb:agentweb:4.0.2' // (必选)
 compile 'com.just.agentweb:download:4.0.2' // (可选)
 compile 'com.just.agentweb:filechooser:4.0.2'// (可选) 

使用时注意点:.setAgentWebParent(cl_web, ConstraintLayout.LayoutParams(-1, -1))
以上方法展示webview的布局 第一个参数一定和第二个参数的类型一样, 比如布局中使用LinearLayout那第二个参数就是LinearLayout.LayoutParams(-1, -1),不然网页加载不出来

gitHub地址: https://github.com/Justson/AgentWeb

7.自定义View之垂直翻页公告栏文字各种提示效果 gitHub上2000多颗星
俗名:可垂直跑、可水平跑的跑马灯
学名:可垂直翻、可水平翻的翻页公告
Gradle:

compile 'com.sunfusheng:marqueeview:<latest-version>'

应用实例可参考gitHub地址:https://github.com/sfsheng0322/MarqueeView

  1. 图片及视频选择器框架 :gitHub上将近4000颗星
    一款针对android平台下的图片选择器,支持从相册或拍照选择图片或视频、音频,支持动态权限获取、裁剪(单图or多图裁剪)、压缩、主题自定义配置等功能、适配android 6.0+系统的开源图片选择框架。
    应用实例可参考gitHub地址: https://github.com/LuckSiege/PictureSelector

9.基于RxJava2的RxBus2. 主要用于发送事件/订阅事件.类似EventBus. 支持Kotlin

dependencies {
    compile 'com.github.MFlisar:RxBus2:0.2'
}
// Send an event to the bus - all observers that observe this class WITHOUT a key will receive this event
RxBus.get().send(new TestEvent());

// boundObject... can be for example your activity
 RxBusBuilder.create(TestEvent::class.java)
                .withBound(this)
                .withMode(RxBusMode.Main)
                .subscribe {
                    if (it.isRefresh) {
                        mPresenter.getHomeBeanList()
                    }
                }

可参考gitHub地址:https://github.com/MFlisar/RxBus2

10.# Android-PickerView
gitHub上7000多颗星
一款仿iOS的PickerView控件,有时间选择器和选项选择器,新版本的详细特性如下:
——TimePickerView 时间选择器,支持年月日时分,年月日,年月,时分等格式。
——OptionsPickerView 选项选择器,支持一,二,三级选项选择,并且可以设置是否联动 。
gradle 依赖

compile 'com.contrarywind:Android-PickerView:4.1.3'

gitHub地址:https://github.com/Bigkoo/Android-PickerView

11.FlycoTabLayout
一个Android TabLayout库,目前有3个TabLayout

12.# PopsTabView
PopsTabView是个filter容器,他可以自动,快速,构建不同筛选样式,自由组合成一组tab

筛选器.jpg

优点:
支持快速,构建不同筛选样式,顺序,自由组合成一组filter的tab.
用接口抽象出filter样式配置器loader,与功能代码解耦.
支持自定义配置 筛选结果ResultLoader<T>
支持自定义数据bean.
可以自由扩展,其他类型的Filter类型.
gitHub地址:https://github.com/ccj659/PopsTabView
13 # RxPermissions
android6.0以上动态权限申请 github6000多颗星,几行代码搞定,简洁方便快捷
gitHub地址:https://github.com/tbruyelle/RxPermissions

14# huazhiyuan2008/RecyclerViewCardGallery

image.png

android实现画廊效果 gitHub上2千多颗星,## 完整代码下载
https://github.com/huazhiyuan2008/RecyclerViewCardGallery

如果想要实现循环滑动画廊实现修改方法如下:
https://www.imooc.com/article/21998
github地址https://github.com/zjw-swun/RecyclerViewCardGallery,不得不说第二种方法填补了第一种的一些坑,比如设置item宽度、以及item之间的间隔
通过设置app:cardElevation="6dp" app:cardMaxElevation="15dp"的值来改变间距
通过设置mShowLeftCardWidth的属性来设置卡片间距

15 列表拖拽移动顺序、单个item滑动删除修改以及其它特殊操作5000颗star
https://github.com/yanzhenjie/SwipeRecyclerView

个人项目使用的版本
implementation 'com.yanzhenjie:recyclerview-swipe:1.1.3'
特性:
Item侧滑菜单,支持水平分布、垂直分布
Item长按拖拽、侧滑删除
添加/移除HeaderView/FooterView
自动/点击加载更多的功能
支持二级列表,List形式、Grid形式、Staggered形式
Sticky普通布局黏贴和ReyclerView分组黏贴
支持AndroidX

16 圆角图片库 gitHub 6000颗星
https://github.com/vinc3m1/RoundedImageView
Add the following to your build.gradle to use:

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.makeramen:roundedimageview:2.3.0'
}

17 视频开发框架:https://github.com/CarGuo/GSYVideoPlayer
视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS,支持弹幕,外挂字幕,支持滤镜、水印、gif截图,片头广告、中间广告,多个同时播放,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放 ,列表全屏动画,视频加载速度,列表小窗口支持拖动,动画效果,调整比例,多分辨率切换,支持切换播放器,进度条小窗口预览,列表切换详情页面无缝播放,rtsp、concat、mpeg。
有其它好用的框架大家有推荐的可以及时提出来 我会整理更新和大家一起分享,谢谢😄。

18 文件下载框架:# lingochamp/FileDownloader
Android 文件下载引擎,稳定、高效、灵活、简单易用 1万颗星

19 图片预览框架 类似于微信聊天页面点击图片或视频左右滑动的效果# yangchaojiang/ZoomPreviewPicture

使用方式:

GPreviewBuilder.from(GridViewCustomActivity.this)//activity实例必须
                            .to(CustomActivity.class)//自定义Activity 使用默认的预览不需要
                            .setData(mThumbViewInfoList)//集合
                            .setUserFragment(UserFragment.class)//自定义Fragment 使用默认的预览不需要
                            .setCurrentIndex(position)
                            .setSingleFling(false)//是否在黑屏区域点击返回
                            .setDrag(false)//是否禁用图片拖拽返回  
                            .setType(GPreviewBuilder.IndicatorType.Dot)//指示器类型
                            .start();//启动           
  1. 仿微信添加标签布局


    image.png

使用FlowLayout来自于鸿洋大神的框架。
正好现在在做项目需要用到。自己试着用了下,具体可以看效果图
鸿洋的github:https://github.com/hongyangAndroid/FlowLayout

android Studio中注入依赖:

implementation 'com.zhy:flowlayout-lib:1.0.3'

布局文件:
zhy:max_select=设置可选中的tag数量。
zhy:max_select="-1" 不限制。
zhy:max_select="5"限制可选中5个标签。适合文章发布选择标签开发。
auto_select_effect="true | false"设置点击效果,默认显示

  1. 版本更新库
    https://github.com/xuexiangjys/XUpdate

如下图:


image.png

也可参考:github源码地址:https://github.com/ZuoHailong/AppUpdate

版本更新二:https://github.com/chiclaim/AndroidUpdater

参考文献:最终方案以跳转Activity新弹窗最靠谱:https://www.jianshu.com/p/98ea7e866ffd?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

可移动悬浮窗 权限检测 事件屏蔽均已实现
https://github.com/SunJenry/FloatWindow
另可移动view的几种方法,不同于悬浮窗的实现方式如下
https://www.cnblogs.com/fuly550871915/p/4985053.html

23.Android 刘海屏全屏适配(沉溺式状态栏,隐藏状态栏)
问题:遇到隐藏和显示状态栏的时候 刘海屏手机会导致默认情况下,应用的界面不会绘制到刘海区域 所以隐藏状态栏时候 会出现白层 此可以适配
https://github.com/smarxpan/NotchScreenTool

https://blog.csdn.net/qq_28934205/article/details/107251467

新版高仿微信已经开源,因为基于融云SDK,使用了 Rxjava+Retrofit+MVP+Glide 等新技术开发,代码结构上可以完全不一样
https://gitee.com/GitLqr/LQRWeChat
新项目地址:https://gitee.com/GitLqr/lqrwechatrongcloud

平时用到的界面元素可以作为参考
https://github.com/Tamsiree/RxTool

image.png

  1. PictureSelector 图片选择、旋转、裁剪各种功能
    implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.5.8'

https://github.com/LuckSiege/PictureSelector

image.png

推荐阅读更多精彩内容