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多顆星
現(xiàn)在的絕大數(shù)app都有banner界面,實現(xiàn)循環(huán)播放多個廣告圖片和手動滑動循環(huán)等功能耿戚。因為ViewPager并不支持循環(huán)翻頁囚企, 所以要實現(xiàn)循環(huán)還得需要自己去動手糜烹,我就把項目中的控件剔了出來,希望大家覺得有用嗜湃。目前框架可以進行不同樣式省有、不同動畫設置, 以及完善的api方法能滿足大部分的需求了贯涎。
dependencies{
compile 'com.youth.banner:banner:1.4.10' //最新版本
}
詳細請看:https://github.com/youth5201314/banner
- BaseRecyclerViewAdapterHelper gitHub上13000多顆星
BRVAH是一個強大的RecyclerAdapter框架(什么是RecyclerView听哭?),它能節(jié)約開發(fā)者大量的開發(fā)時間塘雳,集成了大部分列表常用需求解決方案陆盘。為什么會有它?請查看「Android開源框架BRVAH由來篇」該框架于2016年4月10號發(fā)布的第1個版本到現(xiàn)在已經(jīng)一年多了败明,經(jīng)歷了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
如果想要實現(xiàn)更多的自定義樣式 包括對彈窗中每個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以上沉浸式狀態(tài)欄和沉浸式導航欄管理饭冬,包括狀態(tài)欄字體顏色使鹅,一句代碼輕松實現(xiàn),以及對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的布局 第一個參數(shù)一定和第二個參數(shù)的類型一樣裁厅, 比如布局中使用LinearLayout那第二個參數(shù)就是LinearLayout.LayoutParams(-1, -1),不然網(wǎng)頁加載不出來
gitHub地址: https://github.com/Justson/AgentWeb
7.自定義View之垂直翻頁公告欄文字各種提示效果 gitHub上2000多顆星
俗名:可垂直跑侨艾、可水平跑的跑馬燈
學名:可垂直翻执虹、可水平翻的翻頁公告
Gradle:
compile 'com.sunfusheng:marqueeview:<latest-version>'
應用實例可參考gitHub地址:https://github.com/sfsheng0322/MarqueeView
- 圖片及視頻選擇器框架 :gitHub上將近4000顆星
一款針對android平臺下的圖片選擇器,支持從相冊或拍照選擇圖片或視頻唠梨、音頻袋励,支持動態(tài)權(quán)限獲取、裁剪(單圖or多圖裁剪)当叭、壓縮插龄、主題自定義配置等功能、適配android 6.0+系統(tǒng)的開源圖片選擇框架科展。
應用實例可參考gitHub地址: https://github.com/LuckSiege/PictureSelector
更多圖片相關(guān)開元項目地址:https://p.codekk.com/?s=%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87%E6%9F%A5%E7%9C%8B
9.基于RxJava2的RxBus2. 主要用于發(fā)送事件/訂閱事件.類似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 選項選擇器,支持一坞琴,二哨查,三級選項選擇,并且可以設置是否聯(lián)動 剧辐。
gradle 依賴
compile 'com.contrarywind:Android-PickerView:4.1.3'
gitHub地址:https://github.com/Bigkoo/Android-PickerView
11.FlycoTabLayout
一個Android TabLayout庫,目前有3個TabLayout
- SlidingTabLayout:參照PagerSlidingTabStrip進行大量修改.
- 新增部分屬性
- 新增支持多種Indicator顯示器
- 新增支持未讀消息顯示
- 新增方法for懶癌患者
gitHub地址:https://github.com/H07000223/FlycoTabLayout/blob/master/README_CN.md#flycotablayout
12.# PopsTabView
PopsTabView是個filter容器,他可以自動,快速,構(gòu)建不同篩選樣式,自由組合成一組tab
優(yōu)點:
支持快速,構(gòu)建不同篩選樣式,順序,自由組合成一組filter的tab.
用接口抽象出filter樣式配置器loader,與功能代碼解耦.
支持自定義配置 篩選結(jié)果ResultLoader<T>
支持自定義數(shù)據(jù)bean.
可以自由擴展,其他類型的Filter類型.
gitHub地址:https://github.com/ccj659/PopsTabView
13 # RxPermissions
android6.0以上動態(tài)權(quán)限申請 github6000多顆星寒亥,幾行代碼搞定,簡潔方便快捷
gitHub地址:https://github.com/tbruyelle/RxPermissions
14# huazhiyuan2008/RecyclerViewCardGallery
android實現(xiàn)畫廊效果 gitHub上2千多顆星荧关,## 完整代碼下載
https://github.com/huazhiyuan2008/RecyclerViewCardGallery
如果想要實現(xiàn)循環(huán)滑動畫廊實現(xiàn)修改方法如下:
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側(cè)滑菜單,支持水平分布、垂直分布
Item長按拖拽鳄梅、側(cè)滑刪除
添加/移除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 視頻開發(fā)框架:https://github.com/CarGuo/GSYVideoPlayer
視頻播放器(IJKplayer煎饼、ExoPlayer、MediaPlayer)校赤,HTTPS吆玖,支持彈幕,外掛字幕马篮,支持濾鏡沾乘、水印、gif截圖浑测,片頭廣告翅阵、中間廣告,多個同時播放迁央,支持基本的拖動掷匠,聲音、亮度調(diào)節(jié)岖圈,支持邊播邊緩存讹语,支持視頻自帶rotation的旋轉(zhuǎn)(90,270之類),重力旋轉(zhuǎn)與手動旋轉(zhuǎn)的同步支持蜂科,支持列表播放 顽决,列表全屏動畫,視頻加載速度导匣,列表小窗口支持拖動才菠,動畫效果,調(diào)整比例贡定,多分辨率切換赋访,支持切換播放器,進度條小窗口預覽缓待,列表切換詳情頁面無縫播放蚓耽,rtsp、concat命斧、mpeg田晚。
有其它好用的框架大家有推薦的可以及時提出來 我會整理更新和大家一起分享,謝謝??国葬。
其它視頻播放 gitHub鏈接 https://github.com/search?q=ExoPlayer&type=repositories&s=stars&o=desc
18 文件下載框架:# lingochamp/FileDownloader
Android 文件下載引擎,穩(wěn)定、高效汇四、靈活接奈、簡單易用 1萬顆星
19 圖片預覽框架 類似于微信聊天頁面點擊圖片或視頻左右滑動的效果# yangchaojiang/ZoomPreviewPicture
使用方式:
GPreviewBuilder.from(GridViewCustomActivity.this)//activity實例必須
.to(CustomActivity.class)//自定義Activity 使用默認的預覽不需要
.setData(mThumbViewInfoList)//集合
.setUserFragment(UserFragment.class)//自定義Fragment 使用默認的預覽不需要
.setCurrentIndex(position)
.setSingleFling(false)//是否在黑屏區(qū)域點擊返回
.setDrag(false)//是否禁用圖片拖拽返回
.setType(GPreviewBuilder.IndicatorType.Dot)//指示器類型
.start();//啟動
圖片預覽 更容易維護上手:https://github.com/stfalcon-studio/StfalconImageViewer
-
仿微信添加標簽布局
使用FlowLayout來自于鴻洋大神的框架。
正好現(xiàn)在在做項目需要用到通孽。自己試著用了下序宦,具體可以看效果圖
鴻洋的github:https://github.com/hongyangAndroid/FlowLayout
android Studio中注入依賴:
implementation 'com.zhy:flowlayout-lib:1.0.3'
布局文件:
zhy:max_select=設置可選中的tag數(shù)量。
zhy:max_select="-1" 不限制背苦。
zhy:max_select="5"限制可選中5個標簽互捌。適合文章發(fā)布選擇標簽開發(fā)。
auto_select_effect="true | false"設置點擊效果行剂,默認顯示
如下圖:
也可參考:github源碼地址:https://github.com/ZuoHailong/AppUpdate
版本更新二:https://github.com/chiclaim/AndroidUpdater
參考文獻:最終方案以跳轉(zhuǎn)Activity新彈窗最靠譜:http://www.reibang.com/p/98ea7e866ffd?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
可移動懸浮窗 權(quán)限檢測 事件屏蔽均已實現(xiàn)
https://github.com/SunJenry/FloatWindow
另可移動view的幾種方法秕噪,不同于懸浮窗的實現(xiàn)方式如下
https://www.cnblogs.com/fuly550871915/p/4985053.html
23.Android 劉海屏全屏適配(沉溺式狀態(tài)欄,隱藏狀態(tài)欄)
問題:遇到隱藏和顯示狀態(tài)欄的時候 劉海屏手機會導致默認情況下厚宰,應用的界面不會繪制到劉海區(qū)域 所以隱藏狀態(tài)欄時候 會出現(xiàn)白層 此可以適配
https://github.com/smarxpan/NotchScreenTool
https://blog.csdn.net/qq_28934205/article/details/107251467
新版高仿微信已經(jīng)開源腌巾,因為基于融云SDK,使用了 Rxjava+Retrofit+MVP+Glide 等新技術(shù)開發(fā)铲觉,代碼結(jié)構(gòu)上可以完全不一樣
https://gitee.com/GitLqr/LQRWeChat
新項目地址:https://gitee.com/GitLqr/lqrwechatrongcloud
平時用到的界面元素可以作為參考
https://github.com/Tamsiree/RxTool
- PictureSelector 圖片選擇澈蝙、旋轉(zhuǎn)、裁剪各種功能
implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.5.8'
https://github.com/LuckSiege/PictureSelector