- 1.开源项目思维导图
- 2.开源综合案例
- 3.视频播放器封装库
- 4.状态切换管理器封装库
- 5.复杂类型type封装库
- 6.自定义弹窗封装库
- 7.版本更新封装库
- 8.状态栏封装库
- 9.开源轻量级线程池封装库
- 10.开源轮播图封装库
- 11.开源音频播放器
- 12.开源画廊与图片缩放控件
- 13.Python多渠道打包
- 14.list页面item整体侧滑动画封装库
- 15.开源工具常用类封装库
- 16.Python爬虫妹子图
- 17.自定义百分比进度条
- 博客笔记大汇总【16年3月到至今】,包括Java基础及深入知识点,Android技术博客,Python学习笔记等等,还包括平时开发中遇到的bug汇总,当然也在工作之余收集了大量的面试题,长期更新维护并且修正,持续完善……开源的文件是markdown格式的!同时也开源了生活博客,从12年起,积累共计N篇[近100万字,陆续搬到网上],转载请注明出处,谢谢!
- 链接地址:https://github.com/yangchong211/YCBlogs
- 如果觉得好,可以star一下,谢谢!当然也欢迎提出建议,万事起于忽微,量变引起质变!
- 如果你感觉还行,请给一个star,如果你觉得哪里有问题,也可以直接把问题提给我,我会修改的。业余的小案例,定期更新,持续更新
- 代码地址:https://github.com/yangchong211/LifeHelper
- 说明及截图
- 模块:新闻,音乐,视频,图片,唐诗宋词,快递,天气,记事本,阅读器等等
- 接口:七牛,阿里云,天行,干货集中营,极速数据,追书神器等等
- 架构:采用MVP+Rx+Retrofit+Desgin+Dagger2+阿里VLayout+腾讯X5等架构模式。
- 写于16年,当时主要是为了练手,其中购买的许多阿里云数据接口很多已经用完了,由于精力有限暂停更新
- 项目简介
- 视频播放器封装库案例,仿照优酷,爱奇艺视频播放器,可以添家视频观看权限,试看模式,类似优酷试看功能。基于ijkplayer,支持网络视频或者本地视频播放,滑动调节亮度或者音量,快进快退,记录播放位置。可以设置边观看变缓存,支持全屏播放,小窗口,正常播放等模式;还支持列表播放,切换分辨率,还可以自定义视频播放器,拓展性强
- 封装思路
- 关于视频播放器封装思路已经作了详细介绍,可以看这篇文章:https://blog.csdn.net/m0_37700275/article/details/79074671
- 说明及截图
- 代码地址:
- 项目功能
- 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 锁定屏幕功能
- C.1.5 支持视频小窗口拖拽功能,可以在应用内随意拖拽,单击点击是播放和暂停切换;长按是拖动处理
- 具体详细的开发说明文档,可以直接查看上面链接说明,如果觉得好,欢迎star
- 项目介绍
- 状态切换,让View状态的切换和Activity彻底分离开。用builder模式来自由的添加需要的状态View,可以设置有数据,数据为空,加载数据错误,网络错误,加载中等多种状态,并且支持自定义状态的布局。。目前已经用于新芽正式项目中,拓展性强!!
- 代码地址:
- https://github.com/yangchong211/YCStateLayout
- 说明及截图
- 具体详细的开发说明文档,可以直接查看上面链接说明
- 博客
- 自定义支持上拉加载更多,下拉刷新,可以自定义头部和底部,可以添加多个headAdapter,使用一个原生recyclerView就可以搞定复杂界面。支持自由切换状态【加载中,加载成功,加载失败,没网络等状态】的控件,可以自定义状态视图View。!已经用于投资界,沙丘大学项目中
- 代码地址:https://github.com/yangchong211/YCRefreshView
- 说明及截图
- 具体详细的开发说明文档,可以直接查看上面链接说明
- 关于对应的博客链接是:https://blog.csdn.net/m0_37700275/article/details/79624491
- 自定义对话框,其中包括:仿ios底部弹窗;自定义Toast;自定义DialogFragment弹窗(功能很强大),自定义PopupWindow弹窗【采用builder模式,可以自定义位置,背景,自定义布局(支持嵌套recyclerView)等等,拓展性强】,目前已经用于新芽和投资界正式项目中。!
- 代码地址:https://github.com/yangchong211/YCDialog
- 说明及截图
- 具体详细的开发说明文档,可以直接查看上面链接说明
- 项目介绍
- 轻量级版本更新弹窗,弹窗上支持更新进度条,可以设置普通更新或者强制更新。解决8.0以上通知栏不显示问题,解决7.0以上安装apk异常,下载完成则会自动提示安装;下载异常,失败,错误等状态,支持重启下载任务;还支持自定义下载路径。代码量少,调用简单……
- 具备优势
- 支持后台下载,支持断点下载。支持监听下载过程,下载成功,失败,异常,下载中,暂停等多种状态
- 用户可以设置是否支持强制更新,还支持用户设置版本更新内容,当内容过长,可以实现滚动模式
- 支持进度条显示,对话框进度条,并且下载中支持通知栏进度条展示,解决8.0通知栏不显示问题
- 由于下载apk到本地需要权限,固在lib中已经处理这个逻辑,只有当有读写权限时才会下载文件,没有权限则跳转设置页面打开权限
- 调用十分简单,相比AppUpdate,CheckVersionLib等库的特点是不用设置http的get或者post请求,只需要传入下载链接就可以
- 相比GitHub上几个主流的版本更新库,我这个lib代码量少很多,我觉得最少最精简的代码完成需要的功能就最好
- 适配 Android 7.0 FileProvider,处理了7.0以上安装apk异常问题,在lib中已经配置了fileProvider,直接使用就可以
- 使用dialogFragment替换了dialog,处理了重建后逻辑,dialogFragment深入分析博客
- 下载完成后自动安装,对于错误的下载链接地址,会下载异常,也可以查看异常的日志
- 当下载完成后,再次弹窗,则会先判断本地是否已经下载,如果下载则直接提示安装
- 支持设置自定义下载文件路径,如果不设置,则直接使用lib中的路径【sd/apk/downApk目录下】
- 当apk下载失败,异常,错误等状态,支持重启下载任务。功能十分强大,已经用于正式app多时,你采用拿来主义使用即可,欢迎提出问题。
- 弹窗DialogFragment异常时调用onSaveInstanceState保存状态,重启时取出状态
- 代码地址
- 关于状态栏方案总结案例,适合于绝大多数的使用场景……积累了业余阅读代码中的状态栏工具类,并且整理和去除了无效的代码。已经用于实际项目投资界,新芽,沙丘大学等APP,一键集成并使用!支持单Activity多Fragment动态修改状态栏颜色,入侵性低,一行代码即可实现你需要的需求
- 代码地址:https://github.com/yangchong211/YCStatusBar
- 项目简介
- 轻量级线程池封装库,支持线程执行过程中状态回调监测(包含成功,失败,异常等多种状态);支持创建异步任务,并且可以设置线程的名称,延迟执行时间,线程优先级,回调callback等;可以根据自己需要创建自己需要的线程池,一共有四种;线程异常时,可以打印异常日志,避免崩溃
- 项目优势:
- 重用线程池中的线程,避免频繁地创建和销毁线程带来的性能消耗;有效控制线程的最大并发数量,防止线程过大导致抢占资源造成系统阻塞;可以对线程进行一定地管理。
- 支持线程执行过程中状态回调监测(包含成功,失败,异常等多种状态)
- 支持线程异常检测,并且可以打印异常日志
- 支持设置线程属性,比如名称,延时时长,优先级,callback
- 支持异步开启线程任务,支持监听异步回调监听
- 方便集成,方便使用,可以灵活选择创建不同的线程池
- 代码位置
- 关于线程池封装笔记博客,共计3篇
- 轮播图,支持多种自定义属性,可以设置轮播红点或者轮播数字,支持设置引导页。可以根据不同使用场景,可以选择无限循环,静态管理或者动态管理adapter。还可以设置暂停和开始轮播。目前已经用于投资界,新芽等正式项目中!!
- 主要功能
- 1.1 自定义轮播图,可以设置轮播红点或者轮播数字,多种指示器,并且灵活设置位置
- 1.2 支持多种轮播图适配器,无限轮播adapter,静态管理adapter,和动态管理adapter。支持多种场合使用。
- 1.3 支持自定义hintView,十分灵活,拓展性强
- 1.4 无限循环自动轮播、手指按下暂停轮播、抬起手指开始轮播
- 1.5 优化:在页面onPause中调用停止轮播,在页面onResume中调用开始轮播
- 1.6 支持监听item点击事件,支持轮播图中ViewPager的滑动监听事件
- 1.7 不仅支持轮播图,还支持引导页面,十分方便
- 代码位置
- https://github.com/yangchong211/YCBanner
1.关于音频基础博客
- 0.0.1 如何扫描本地音频或者视频
- 0.0.2 深入学习酷狗,混沌大学那种锁屏页面原理
- 0.0.3 为什么要捕获/丢弃音频焦点详细讲解
- 0.0.4 耳机声控,以及耳机拔出或者插入控制播放暂停
- 0.0.5 音视频编码解码深入分析总结
- 0.0.6 实现音视频1.5倍,2倍播放速率
- 0.0.7 音频的加密与解密案例实践深入总结
- 0.0.8 音频基础知识和概念的介绍
- 0.0.9 [音视频混合案例介绍]后期更新
- 0.1.0 如何构建知识图谱,重点
- 0.1.1 完整视频播放器案例总结与分析
- 0.1.2 关于博客笔记大汇总
- 0.1.3 Android编码规范
- 0.1.4 Notification通知控制播放
- RecyclerView.ViewHolder的封装类,支持RecycleView的item整体滑动。目前已经用于新芽实际项目中!!
- 代码地址:https://github.com/yangchong211/YCSlideView
- 说明及截图
- 具体详细的开发说明文档,可以直接查看上面链接说明
- 项目介绍
- 瓦力多渠道打包的Python脚本测试工具,通过该自动化脚本,自需要run一下或者命令行运行脚本即可实现美团瓦力多渠道打包,打包速度很快。配置信息十分简单,代码中已经注释十分详细。可以自定义输出文件路径,可以修改多渠道配置信息,简单实用。
- 该库优势
- 通过该自动化脚本,自需要run一下或者命令行运行脚本即可实现美团瓦力多渠道打包,打包速度很快
- 配置信息十分简单,代码中已经注释十分详细。Keystore信息一定要配置,至于渠道apk输出路径,文件配置路径等均有默认路径,没有配置也没关系
- 针对输出路径是根目录下的output文件夹,文件不存在则创建,文件存在则是先删除之前多渠道打包生成的【也就是删除output文件夹下所有文件】,然后在重新生成
- 多渠道的定义是在channel这个文件中,建议是txt文件格式,你可以根据项目情况修改,十分快捷
- 如果瓦力打包工具更新了,直接替换一下lib中的jar即可。可以在python3.x上跑起来!
- 项目地址
- 开发过程中常用功能总结,包括自定义模糊视图,Loading加载,自定义Switch控件,自定义webview,支持滑动监听,并且优雅处理302重定向和处理回退栈问题,优雅处理Fragment返回监听,自定义ScrollView常用控件等等。
- 代码地址:https://github.com/yangchong211/YCUtils
- 说明及截图
- 具体详细的开发说明文档,可以直接查看上面链接说明
- 学习python爬虫,爬了meizi网站图片,请勿商用。同时分享了部分爬到的图片,仅供欣赏一下。python爬虫特别好玩,主要是练习一下写代码。
- 项目地址:https://github.com/yangchong211/YCMeiZiTu
- 项目介绍
- 自定义进度条,包括圆环型百分比进度条,直线型百分比进度条,还有仿360杀毒百分比进度条。可以自由设置进度条的类型,外部轮廓颜色,中心圆颜色,自定义百分比单位属性,进度条颜色等等。带有进度监听,可以设置百分比。使用于的场景有:启动页倒计时,下载进度条展示,杀毒进度条展示……
- 该库优势
- 圆环百分比进度条
- 简便且小巧,支持设置多种属性。可以设置内圆和外圆的颜色,设置圆环的边缘宽度。
- 支持设置倒计时总时间,可以调用start开始倒计时,也可以调用stop暂停倒计时,也可以自定义设置进度
- 仿杀毒类型百分比进度条
- 支持设置多种类型,比如设置百分比+单位类型,或者设置空类型【也就是不显示中间百分比】
- 支持设置进度条的颜色,未更新的进度条颜色;设置百分比文字大小,颜色;支持设置单位等多种属性
- 支持允许多线程访问,对于设置setProgress,添加synchronized关键字修饰。设置进度progress,如果小于0或者大于100,则抛异常。避免开发者使用造成其他问题。
- 直线百分比进度条
- 支持设置百分比进度条的文本大小,字体颜色,以及百分比进度条更新部分和未更新部分的颜色
- 支持设置进度条的高度,可以设置进度条的最大值,设置进度条进度,还支持设置百分比文字是否可见
- 可以设置倒计时总时间,可以设置开始,暂停,重新开始等。支持百分比进度条进度监听
- 进度条其他共同属性
- 针对进度条,对于设置color颜色的方法,增加了注解@ColorInt,限制开发者调用color资源
- 使用注解代替了枚举,针对设置枚举的方法,使用注解限制开发者调用时传入的类型。具体可见代码案例!
- 注释十分详细,作为开源的lib库,我觉得要让使用者一目了然。方便调用同时,知道每个方法的作用。
- 代码量少,如果想学习并深入自定义控件,可以从简单开始。这个项目就很符合!
- 圆环百分比进度条
- 代码位置
- 我的个人站点:
- github:https://github.com/yangchong211
- 知乎:https://www.zhihu.com/people/yczbj/activities
- 简书:http://www.jianshu.com/u/b7b2c6ed9284
- csdn:http://my.csdn.net/m0_37700275
- 喜马拉雅听书:http://www.ximalaya.com/zhubo/71989305/
- 开源中国:https://my.oschina.net/zbj1618/blog
- 泡在网上的日子:http://www.jcodecraeer.com/member/content_list.php?channelid=1
- 邮箱:[email protected]
- 阿里云博客:https://yq.aliyun.com/users/article?spm=5176.100- 239.headeruserinfo.3.dT4bcV
- segmentfault头条:https://segmentfault.com/u/xiangjianyu/articles
- 掘金:https://juejin.im/user/5939433efe88c2006afa0c6e