收集网上优秀的代码(持续更新中...)
1. 炫酷的Toast
Toasty
Paste_Image.pngPaste_Image.png
2. 轻量级的Android MVP快速开发框架
XDroidMvp
作者简书地址:droidlover
项目结构目录
Paste_Image.png
3. 视频播放器
IJKplayer
作者简书地址:恋猫月亮
视频播放器(IJKplayer),HTTPS支持,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频本身自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放 ,直接添加控件为封面,列表全屏动画,视频加载速度,列表小窗口支持拖动,5.0的过场效果,调整比例,多分辨率切换,支持切换播放器,进度条小窗口预览,其他一些小动画效果。
-
进度条小窗口预览
进度条小窗口预览 -
列表模式
列表模式 -
详情模式
详情模式
4. 网络请求框架
OKGO
作者简书地址:廖子尧
该库是封装了okhttp的标准RESTful风格的网络框架,可以与RxJava完美结合,比Retrofit更简单易用。支持大文件上传下载,上传进度回调,下载进度回调,表单上传(多文件和多参数一起上传),链式调用,可以自定义返回对象,支持Https和自签名证书,支持超时自动重连,支持cookie与session的自动管理,支持四种缓存模式缓存网络数据,支持301、302重定向,扩展了统一的上传管理和下载管理功能
-
演示
我是图
我是图
我是图
我是图
我是图
我是图
5. RecyclerView
BaseRecyclerViewAdapterHelper
它能做什么?
和原始的adapter相对,减少70%的代码量。````
- [**添加Item事件**](https://github.com/CymChad/BaseRecyclerViewAdapterHelper/wiki/%E6%B7%BB%E5%8A%A0Item%E4%BA%8B%E4%BB%B6)
Item的点击事件
Item的长按事件
Item子控件的点击事件
Item子控件的长按事件````
一行代码轻松切换5种默认动画。````
- [**添加头部、尾部**](https://github.com/CymChad/BaseRecyclerViewAdapterHelper/wiki/%E6%B7%BB%E5%8A%A0%E5%A4%B4%E9%83%A8%E3%80%81%E5%B0%BE%E9%83%A8)
一行代码搞定,感觉又回到ListView时代。````
上拉加载无需监听滑动事件,可自定义加载布局,显示异常提示,自定义异常提示。````
- [**添加分组**](https://github.com/CymChad/BaseRecyclerViewAdapterHelper/wiki/%E6%B7%BB%E5%8A%A0%E5%88%86%E7%BB%84)
随心定义分组头部。````
简单配置、无需重写额外方法。````
- [**设置空布局**](https://github.com/CymChad/BaseRecyclerViewAdapterHelper/wiki/%E8%AE%BE%E7%BD%AE%E7%A9%BA%E5%B8%83%E5%B1%80)
比Listview的setEmptyView还要好用。````
开启,监听即可,就是这么简单。````
- [**分组的伸缩栏**](https://github.com/CymChad/BaseRecyclerViewAdapterHelper/wiki/%E5%88%86%E7%BB%84%E7%9A%84%E4%BC%B8%E7%BC%A9%E6%A0%8F)
比ExpandableListView还要强大,支持两级。````
支持自定义ViewHolder,让开发者随心所欲。````
#6. 沉浸式状态栏
##[StatusBarUtil 状态栏工具类](https://github.com/laobie/StatusBarUtil)
##特性
- 设置状态栏颜色
StatusBarUtil.setColor(Activity activity, int color)
![Paste_Image.png](http:https://img.haomeiwen.com/i3347923/138acc39e83ea530.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 设置状态栏半透明
StatusBarUtil.setTranslucent(Activity activity, int statusBarAlpha)
![Paste_Image.png](http:https://img.haomeiwen.com/i3347923/e6e43096050673ff.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 设置状态栏全透明
StatusBarUtil.setTransparent(Activity activity)
![Paste_Image.png](http:https://img.haomeiwen.com/i3347923/d803f42524c122a2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 为使用 ImageView 作为头部的界面设置状态栏透明
StatusBarUtil.setTranslucentForImageView(Activity activity, int statusBarAlpha, View needOffsetView)
![Paste_Image.png](http:https://img.haomeiwen.com/i3347923/478fabb837fff46d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#7. 图片压缩工具类
##[CompressHelper](https://github.com/nanchen2251/CompressHelper)
![Paste_Image.png](http:https://img.haomeiwen.com/i3347923/9f3ec12a02c0e9a4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
##使用方法
----
####1、添加依赖
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
compile 'com.github.nanchen2251:CompressHelper:1.0.4'
}
####2、在Activity里面使用
File newFile = CompressHelper.getDefault(this).compressToFile(oldFile);
####3、你也可以自定义属性
File newFile = new CompressHelper.Builder(this)
.setMaxWidth(720) // 默认最大宽度为720
.setMaxHeight(960) // 默认最大高度为960
.setQuality(80) // 默认压缩质量为80
.setFileName(yourFileName) // 设置你需要修改的文件名
.setCompressFormat(CompressFormat.JPEG) // 设置默认压缩为jpg格式
.setDestinationDirectoryPath(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES).getAbsolutePath())
.build()
.compressToFile(oldFile);
#8. AndroidLog库--ALog
##[ALog](https://github.com/Blankj/ALog)
##Functions
- 可设置Log开启和关闭
- 可设置Log全局Tag
- 全局Tag为空时Tag为当前类名
- 可设置Log是否显示头部信息
- Log头部含有当前线程名
- Log头部含有当前类及行号和函数名,支持点击跳转
- 可设置Log是否写入文件
- 可设置Log是否显示边框
- 可设置Log过滤器
- 支持长字符串的输出
- 支持多参数输出
- 支持单独写入文件
- 支持JSON串的输出
- 支持XML串的输出
- jar包不足5Kb
![Paste_Image.png](http:https://img.haomeiwen.com/i3347923/76f4f80b9950a67d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#9. RecyclerView加载视图
##[ShimmerRecyclerView](https://github.com/sharish/ShimmerRecyclerView)
![Paste_Image.png](http:https://img.haomeiwen.com/i3347923/d15013d79c8d09d5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#10.Android水波动画帮助类
##[CircularAnim ](https://github.com/XunMengWinter/CircularAnim)
![Paste_Image.png](http:https://img.haomeiwen.com/i3347923/c6793f7fbfe98275.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![Paste_Image.png](http:https://img.haomeiwen.com/i3347923/624273d8f7d02aca.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#10.Android键盘面板冲突 布局闪动处理方案
##**[JKeyboardPanelSwitch](https://github.com/Jacksgong/JKeyboardPanelSwitch)**
![Paste_Image.png](http:https://img.haomeiwen.com/i3347923/d74913372da29fb1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![Paste_Image.png](http:https://img.haomeiwen.com/i3347923/d32e81a8c6df93af.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![Paste_Image.png](http:https://img.haomeiwen.com/i3347923/bbf356542fd27fd7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![Paste_Image.png](http:https://img.haomeiwen.com/i3347923/36dbd8ec721dbe6e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#11.快速实现微信与支付宝支付
##**[Android-Pay](https://github.com/mayubao/Android-Pay)**
----
###1.引入依赖
dependencies {
//添加支付库
compile 'io.github.mayubao:pay_library:1.0.1'
}
###2.使用
- ####微信支付使用
WechatPayReq wechatPayReq = new WechatPayReq.Builder()
.with(this) //activity实例
.setAppId(appid) //微信支付AppID
.setPartnerId(partnerid)//微信支付商户号
.setPrepayId(prepayid)//预支付码
.setNonceStr(noncestr)
.setTimeStamp(timestamp)//时间戳
.setSign(sign)//签名
.create();
//2.发送微信支付请求
PayAPI.getInstance().sendPayRequest(wechatPayReq);
//关于微信支付的回调
//wechatPayReq.setOnWechatPayListener(new OnWechatPayListener);
- ####支付宝支付使用
//1.创建支付宝支付订单的信息
String rawAliOrderInfo = new AliPayReq2.AliOrderInfo()
.setPartner(partner) //商户PID || 签约合作者身份ID
.setSeller(seller) // 商户收款账号 || 签约卖家支付宝账号
.setOutTradeNo(outTradeNo) //设置唯一订单号
.setSubject(orderSubject) //设置订单标题
.setBody(orderBody) //设置订单内容
.setPrice(price) //设置订单价格
.setCallbackUrl(callbackUrl) //设置回调链接
.createOrderInfo(); //创建支付宝支付订单信息
//2.签名 支付宝支付订单的信息 ===>>> 商户私钥签名之后的订单信息
//TODO 这里需要从服务器获取用商户私钥签名之后的订单信息
String signAliOrderInfo = getSignAliOrderInfoFromServer(rawAliOrderInfo);
//3.发送支付宝支付请求
AliPayReq2 aliPayReq = new AliPayReq2.Builder()
.with(activity)//Activity实例
.setRawAliPayOrderInfo(rawAliOrderInfo)//支付宝支付订单信息
.setSignedAliPayOrderInfo(signAliOrderInfo) //设置 商户私钥RSA加密后的支付宝支付订单信息
.create()//
.setOnAliPayListener(null);//
PayAPI.getInstance().sendPayRequest(aliPayReq);
//关于支付宝支付的回调
//aliPayReq.setOnAliPayListener(new OnAliPayListener);
**同时可以关注本人的专题,不定时收录一些优秀作品!**