0:引言
最近自己在写一个安卓软件,把我做的sci.ci这个网站接入到移动端来。在写这个软件的过程中,遇到了非常多优秀的开源库,这些库简化了我很多工作,在此将他们分享出来。
1:Kongzue Dialog V3
自定义Toast对话框,仿IOS设计
项目地址:https://github.com/kongzue/DialogV3
1.1 引入
1.1.1Support 版本
Maven仓库:
1 | <dependency> |
Gradle: 在dependencies{}中添加引用:
1 | implementation 'com.kongzue.dialog_v3:dialog:3.1.8' |
1.2 功能
1.2.1 基本对话框
1.2.2 输入对话框
1.2.3等待提示对话框
1.2.4底部菜单
1.2.5通知
1.2.6分享对话框
1.2.7全屏
2:YCVideoPlayer
视频播放器封装库,仿爱奇艺、优酷。
项目地址:https://github.com/yangchong211/YCVideoPlayer
2.1 引用
应用build.gradle中引入
1 | compile 'cn.yc:YCVideoPlayerLib:2.4.9' |
2.2 功能
A基础功能
- A.1.1 能够自定义视频加载loading类型,设置视频标题,设置视频底部图片,设置播放时长等基础功能
- A.1.2 可以切换播放器的视频播放状态,播放错误,播放未开始,播放开始,播放准备中,正在播放,暂停播放,正在缓冲等等状态
- A.1.3 可以自由设置播放器的播放模式,比如,正常播放,全屏播放,和小屏幕播放。其中全屏播放支持旋转屏幕。
- A.1.4 可以支持多种视频播放类型,比如,原生封装视频播放器,还有基于ijkPlayer封装的播放器。
- A.1.5 可以设置是否隐藏播放音量,播放进度,播放亮度等,可以通过拖动seekBar改变视频进度。还支持设置n秒后不操作则隐藏头部和顶部布局功能
- A.1.6 可以设置竖屏模式下全屏模式和横屏模式下的全屏模式,方便多种使用场景
- A.1.7 top和bottom面版消失和显示:点击视频画面会显示、隐藏操作面板;显示后不操作会5秒后自动消失【也可以设置】
B高级功能
- B.1.1 支持一遍播放一遍缓冲的功能,其中缓冲包括两部分,第一种是播放过程中缓冲,第二种是暂停过程中缓冲
- B.1.2 基于ijkPlayer的封装播放器,支持多种格式视频播放
- B.1.3 可以设置是否记录播放位置,设置播放速度,设置屏幕比例
- B.1.4 支持滑动改变音量【屏幕右边】,改变屏幕亮度【屏幕左边】,屏幕底测左右滑动调节进度
- B.1.5 支持list页面中视频播放,滚动后暂停播放,播放可以自由设置是否记录状态。并且还支持删除视频播放位置状态。
- B.1.6 切换横竖屏:切换全屏时,隐藏状态栏,显示自定义top(显示电量);竖屏时恢复原有状态
- B.1.7 支持切换视频清晰度模式
- B.1.8 添加锁屏功能,竖屏不提供锁屏按钮,横屏全屏时显示,并且锁屏时,屏蔽手势处理
C拓展功能【这块根据实际情况选择是否需要使用,一般视频付费App会有这个工鞥】
- C1产品需求:类似优酷,爱奇艺视频播放器部分逻辑。比如如果用户没有登录也没有看视频权限,则提示试看视频[自定义布局];如果用户没有登录但是有看视频权限,则正常观看;如果用户登录,但是没有充值会员,部分需要权限视频则进入试看模式,试看结束后弹出充值会员界面;如果用户余额不足,比如余额只有99元,但是视频观看要199元,则又有其他提示。
- C2自身需求:比如封装好了视频播放库,那么点击视频上登录按钮则跳到登录页面;点击充值会员页面也跳到充值页面。这个通过定义接口,可以让使用者通过方法调用,灵活处理点击事件。
- C.1.1 可以设置试看模式,设置试看时长。试看结束后就提示登录或者充值……
- C.1.2 对于设置视频的宽高,建议设置成4:3或者16:9或者常用比例,如果不是常用比例,则可能会有黑边。其中黑边的背景可以设置
- C.1.3 可以设置播放有权限的视频时的各种文字描述,而没有把它写在封装库中,使用者自己设定
- C.1.4 锁定屏幕功能
D待添加功能
D.1.1 可以支持屏幕截图功能,视频添加水印效果
D.1.2 支持弹幕功能
D.1.3 后期待定,视频拖拽
3:Android-SpinKit
加载中样式。
项目地址:https://ybq.github.io/Android-SpinKit
如果第一章的kongzue等待对话框还不足以满足个性化需求,那这个加载库应该足够了。
3.1 引用
1 | dependencies { |
3.2 样式
4:AgentWeb
基于安卓原生Webview的浏览器,自动实现视频全屏播放,加入了网页加载进度条
项目地址:https://github.com/Justson/AgentWeb
引入
Gradle
1 | api 'com.just.agentweb:agentweb:4.1.2' // (必选) |