- 博客(55)
- 资源 (15)
- 问答 (5)
- 收藏
- 关注

原创 RxJava2 源码解析(二)
概述承接上一篇RxJava2 源码解析(一), 本系列我们的目的:知道源头(Observable)是如何将数据发送出去的。知道终点(Observer)是如何接收到数据的。何时将源头和终点关联起来的知道线程调度是怎么实现的知道操作符是怎么实现的本篇计划讲解一下4,5.RxJava最强大的莫过于它的线程调度 和 花式操作符。map操作符map是一个高频的操作符,我
2017-03-20 10:06:29
8274
9

原创 RxJava2 源码解析(一)
概述最近事情太多了,现在公司内部的变动,自己岗位的变化,以及最近决定找工作。所以博客耽误了,准备面试中,打算看一看RxJava2的源码,遂有了这篇文章。不会对RxJava2的源码逐字逐句的阅读,只寻找关键处,我们平时接触得到的那些代码。 背压实际中接触较少,故只分析了Observable. 分析的源码版本为:2.0.1我们的目的:知道源头(Observable)是如何将数据发送出去的。知道终
2017-03-12 19:42:21
15657
2

原创 【注释张豪华版 Path酷炫动画】极速get花式Path (支付宝支付成功动画)
在前文 中,我详细的阐述了如何撸出一个酷炫的Path动画View,我们的口号是:I have a path.I have a view. Oh~,Path(Anim)View.本文的目标是:I have a pic.I have a view. Oh~,Path(Anim)View.然后手把手教你图片->SVG->Path的姿势.。从此酷炫Path动画,你找到的图有多精彩,gif就有多精彩
2017-01-04 14:31:29
13236
18

原创 2016 博客导读总结 & 个人感悟
此文着笔之时,2017已经在眼前了。估计等我写完,2017已经到了。 关于2016的感悟,十二月初就想写,当时觉得是有点太早了,不过却思绪如泉涌。 且那时候才刚刚申请到博客专家(访问量刚刚过5W)。我是想等到这个月底,看看这2016过去了,对所有的一切进行一个总结,包括博客、个人学习工作、感悟等等。 没想到此时,2016年12月31日23点15分,提笔却忽然有点忘了要说些什么。先从博客开始吧。
2017-01-01 00:43:37
8287
24

原创 五行代码实现 炫动滑动 卡片层叠布局,仿探探、人人影视订阅界面 简单&优雅:LayoutManager+ItemTouchHelper
前几天看有人实现了仿人人美剧的订阅界面,不过在细节之处以及实现方式我个人认为都不是最佳的姿势。于是我也动手撸了一个,还顺带撸了个探探的界面.且简单&优雅&快速。利用LayoutManager实现卡片层叠布局,搭配ItemTouchHelper,它本身实现了拖拽&滑动删除逻辑,我们只需要在onChildDraw()中绘制.所以本文也算是填了LayoutManger系列的坑,实现了一个酷炫效果的布局。
2016-12-19 08:14:33
26192
9

原创 【Android】快速开发偷懒必备(二) 支持DataBinding啦~爽炸,一行实现花式列表
以后不管写多种type还是单type的列表,利用DataBinding和本库,都只需要一行代码!在前文[快速开发偷懒必备(一)]中,我们利用Adapter模式封装了一个库,能快速为任意ViewGroup添加子View。在库中V1.1.0版本,我也顺手加入了RecyclerView、ListView、GridView的通用Adapter功能
2016-12-14 07:47:00
7484
2

原创 【Android】快速开发偷懒必备,一句话搞定所有ViewGroup的Adapter . 支持自定义ViewGroup
开发中,经常会用到动态在ScrollView、LinearLayout里addView的事,尤其是ItemView一样时,每次都要写一大堆代码 inflater 动态addView,很烦。这个时候就开始期待,能不能有一种快速为任意ViewGroup添加子View的东西。那么需求就来了: * 快速简单使用 * 支持任意ViewGroup * 无耦合 * 无侵入性 * Item支持多种类型
2016-12-12 08:38:59
7933
3

原创 【Android】史上最简单,一步集成侧滑(删除)菜单,高仿QQ、IOS。
重要的话 开头说,not for the RecyclerView or ListView, for the Any ViewGroup.本控件**不依赖任何**父布局,不是针对 RecyclerView、ListView,而是**任意的ViewGroup**里的childView都可以使用侧滑(删除)菜单。
2016-11-14 11:13:34
34621
33

原创 【Android】 给我一个Path,还你一个酷炫动画
原本只是想模仿一下我魂牵梦萦的StoreHouse效果,没想到意外撸出来一个工具库。最简单用法,给我一个path(可以有**多段**),我还你一个动画。**I have a path.I have a view. (Oh~),Path(Anim)View.**
2016-11-04 23:08:20
18383
1

原创 【Android】掌握自定义LayoutManager(二) 实现流式布局
转载请标明出处: http://blog.csdn.net/zxt0601/article/details/52956504 本文出自:【张旭童的博客】本系列文章相关代码传送门: 自定义LayoutManager实现的流式布局 欢迎star,pr,issue。本系列文章目录: 掌握自定义LayoutManager(一) 系列开篇 常见误区、问题、注意事项,常用API。 掌握自
2016-10-28 17:58:17
41884
33

原创 【Android】掌握自定义LayoutManager(一) 系列开篇 常见误区、问题、注意事项,常用API。
转载请标明出处: http://blog.csdn.net/zxt0601/article/details/52948009 本文出自:【张旭童的博客】本系列文章相关代码传送门: 自定义LayoutManager实现的流式布局 欢迎star,pr,issue。本系列文章目录: 深入掌握自定义LayoutManager(一) 系列开篇 常见误区、问题、注意事项,常用API。 深
2016-10-27 23:29:14
30391
4

原创 【Android】ListView、RecyclerView、ScrollView里嵌套ListView 相对优雅的解决方案:NestFullListView
一 背景概述:ScrollView里嵌套ListView,一直是Android开发者(反正至少是我们组)最讨厌的设计之一,完美打破ListView(RecyclerView)的复用机制,成功的将Native页面变成一个又臭又长的H5网页效果,但由于这种设计需求在我司项目实在太多见,无奈之下,我还是决定封装一下,毕竟,一个项目里同样的代码写第二遍的程序员都不是好的圣斗士。但是我真的是拒绝的 !拒绝的!
2016-09-10 21:24:26
26927
8

原创 【Android】毫无耦合性,一个Item根布局搞定 item侧滑删除菜单,像IOS那样简单的使用侧滑删除。
【Android自定义ViewGroup】不一样的轮子,巧用类变量解决冲突,像IOS那样简单的使用侧滑删除,一个控件搞定Android item侧滑删除菜单。包含且不仅包含以下功能:1 侧滑拉出菜单。2 点击除了这个item的其他位置,菜单关闭。3 侧滑过程中,不许父控件上下滑动。4 多指同时滑动,屏蔽后触摸的几根手指。5 不会同时展开两个侧滑菜单。6 侧滑菜单时 拦截了长按事件。
2016-08-24 22:06:31
31566
86
原创 Janky frames 是如何计算出来的
想看我更多文章:【张旭童的博客】http://blog.csdn.net/zxt0601 想来gayhub和我gaygayup:【mcxtzhang的Github主页】https://github.com/mcxtzhang背景最近在做一些性能监控的工作,其中线下监控fps这一项,经过调研,最终采用dumpsys gfxinfo的方式。在6.0+的手机中执行如下命令,
2018-02-01 14:22:11
9480
4
原创 2017年总结
总结今天是2018年的第一天,2017年就这么过去了,说实话,每一年大家都觉得过得很快,可是这个2017年是我记忆里过的最快的一年,可能和2016年相比吧,因为2016年我过的十分充实,也做了很多事情,当然也写了很多博客,完成了很多目标。博客先从博客说起,纵观这个2017年,我没有写太多博客,更新频率下降了很多,这里面有很多原因,我在之前的博客里也提到过,一是我个人的变动,工作上的职位的变动,公司的
2018-01-01 23:44:19
4134
2
原创 面试必备:SparseArray源码解析
想看我更多文章:【张旭童的博客】http://blog.csdn.net/zxt0601 想来gayhub和我gaygayup:【mcxtzhang的Github主页】https://github.com/mcxtzhang1 概述在前文中,我们已经聊过了HashMap和LinkedHashMap ArrayMap.所以如果没看过,可以先阅读 面试必备:HashMap源码解析(JDK8)
2017-10-25 16:08:28
4687
2
原创 面试必备:ArrayMap源码解析
概括的说,ArrayMap 实现了implements Map<K, V>接口,所以它也是一个关联数组、哈希表。存储以key->value 结构形式的数据。它也是线程不安全的,允许key为null,value为null。它相比HashMap,空间效率更高。它的内部实现是基于两个数组。 一个int[]数组,用于保存每个item的hashCode. 一个Object[]数组,保存key/value键值对。容量
2017-10-24 19:18:55
6214
5
原创 面试必备:LinkedHashMap源码解析(JDK8)
想看我更多文章:【张旭童的博客】http://blog.csdn.net/zxt0601 想来gayhub和我gaygayup:【mcxtzhang的Github主页】https://github.com/mcxtzhang1 概述在上文中,我们已经聊过了HashMap,本篇是基于上文的基础之上。所以如果没看过上文,请先阅读面试必备:HashMap源码解析(JDK8) 本文将从几个常用方法
2017-08-20 14:56:08
14510
15
原创 面试必备:HashMap源码解析(JDK8)
1 概述本文将从几个常用方法下手,来阅读HashMap的源码。 按照从构造方法->常用API(增、删、改、查)的顺序来阅读源码,并会讲解阅读方法中涉及的一些变量的意义。了解HashMap的特点、适用场景。如果本文中有不正确的结论、说法,请大家提出和我讨论,共同进步,谢谢。2 概要概括的说,HashMap 是一个关联数组、哈希表,它是线程不安全的,允许key为null,value为null。 其底
2017-08-19 16:57:21
36971
11
原创 面试必备:LinkedList源码解析(JDK8)
概述本篇是Java集合类解析的第二篇,上一篇[面试必备:ArrayList源码解析(JDK8)]里,我们唠了ArrayList,今儿来继续说LinkedList.面试中,这兄弟俩也经常会拿来比较。它们两可以说是List接口的两种不同的实现,ArrayList的增删效率低,但是改查效率高。 而LinkedList正好相反,增删由于不需要移动底层数据,其底层是链表实现的,所以效率较高。 而改和查,都
2017-08-17 20:56:02
14138
7
原创 面试必备:ArrayList源码解析(JDK8)
正巧最近在看`jdk`的`Collection`集合源码,这种单个类的源码解析,写起来还算比较方便。**关键代码处加上注释,核心处做个总结**,就可以成文,拿出来和大家**讨论分享。**且网上绝大多数都是`JDK7`甚至之前的源码解析文章。咱们也要与时俱进。这似乎是我回归博客的一个不错选择。那下面就跟我一起撸起`ArrayList`的源码吧。
2017-08-16 22:52:44
13913
5
原创 动态图解&实例 ConstraintLayout Chain
昨儿写了一篇全文字和JPG、无Gif的博文ConstraintLayout 属性详解 和Chain的使用, 主要详解了ConstraintLayout的所有属性, 但是有朋友问Chain是如何通过可视化的方式去添加, 于是便有了此文。但是只讲解Chain又显得太单薄, 于是我又加入了一个用ConstraintLayout实现商品详情、Item布局的实例。
2017-05-25 18:43:33
9891
3
原创 ConstraintLayout全解&实例,官方推荐的约束布局-张旭童-专题视频课程
ConstraintLayout,官方强推的约束布局。特点是可视化操作。且能替代RelativeLayout,解决多层嵌套布局,以及实现类似前端flexible布局的控件。
2017-05-25 15:59:49
902
原创 ConstraintLayout 属性详解 和Chain的使用
小伙伴们好久不见,我又回来啦。说实话这篇文章写的算是比较晚了,距离`ConstraintLayout`出现至今已经有一年了。且自AS2.3起创建新的`Activity`,默认的layout根布局就是`ConstraintLayout`。所以再不学习就真的晚了。
2017-05-24 18:04:09
89905
10
原创 《Effective Java》读书笔记
引言1 代码应该被重用 ,而不是被拷贝。2 错误应该尽早被检测出来,最好是在编译时刻。3 接口、类、数组是引用类型(对象), 基本类型不是第二章 创建和销毁对象1 考虑用静态工厂方法代替构造器。优势: 1 有名称(多个 相同签名 的构造器) 2 不必每次调用它们都创建一个新对象。(可控) 3 可以返回原返回类型的任何子类型的对象。(灵活,可返回一个接口类型,强迫客户端面向接口编程)
2017-04-09 18:39:59
3373
原创 《图解HTTP》读书笔记
第一章URI用字符串标识某一互联网资源,而URL表示资源的地点(互联网上所处的位置)。URL是URI的子集。2 应用层协议FTP,DNS(提供域名到IP地址之间的解析服务),HTTP3 传输层协议TCP(可靠的字节流服务) UDP4 网络层IP协议也在这一层(利用ARP,完成IP-MAC的解析)。 用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。网络层的作用是在众多的选项内选择一条传
2017-03-28 19:58:24
3155
原创 Retrofit 从入门封装到源码解析-张旭童-专题视频课程
从Retrofit的入门开始讲解,然后搭配Rxjava使用,主要讲解在实战项目中如何封装(主要涉及到OkHttp,部分涉及到Retrofit),后会对源码进行解析,让你知其然,知其所以然。...
2017-02-21 15:51:05
693
原创 《艺术探索》读书笔记(更新中)
前言最近没有写什么新博文, 一是太忙了,而且马上有新的挑战来到。 二是赶上过年期间。 三是没有什么太好的题材写。 四是自己在充电在半闭关学习。 计划下篇博文本月更新吧,题材从下列中出一个 Retrofit 、组件化、自定义View最近重读《艺术探索》,将其中一些对我有用的、我仍然不知道的、或者觉得容易混淆的知识点整理出来。 部分也有可能是我自己总结整理出来的经验,一并放在里面。第1章 A
2017-02-19 00:26:24
3563
1
原创 LayoutManager+ItemTouchHelper实战,仿探探 炫动滑动 卡片层叠布局-张旭童-专题视频课程...
简单&优雅实现 仿探探首页、人人影视订阅界面 炫动滑动 卡片层叠 布局,利用LayoutManager+ItemTouchHelper+RecyclerView打造,边写边讲解LayoutManager+ItemTouchHelper这两个重点也是难点。还会对ItemTouchHelper进行部分源码解析。...
2017-02-04 21:32:44
1104
原创 《Thinking in Java》读书笔记(不断更新中)
概述春节在家乡,家里的电脑都是我上大学时淘汰的,要么运行不起来AS,要么连接不上手机,要么编译不了程序,这Android是写不了了。 记得前几天写插件的时候,用过Intellij IDEA,感觉很流畅,心说在我的小霸王电脑上试一试。于是我就下载了一个Intellij IDEA,运行Hello World畅快无比,OK,那么这几天有空就复习一下Java基础知识吧,温故而知新。 手头正好有一个本《T
2017-01-31 11:29:58
5185
原创 Android 仿饿了么加入购物车特效控件(自定义View实战)-张旭童-专题视频课程
利用 纯自定义View,实现的仿饿了么加入购物车控件,自带闪转腾挪动画的按钮。
2017-01-23 08:44:29
887
原创 仿饿了么加入购物车旋转控件 - 自带闪转腾挪动画 的按钮
今天给大家带来的是利用 纯自定义View,实现的仿饿了么加入购物车控件,自带闪转腾挪动画的按钮。 本控件已经考虑到了View的回收复用,在RecyclerView、ListView中使用,切换LayoutManager也是没有问题的。注意,本控件非继承自ViewGroup,而是纯自定义View实现。理由如下:1 减少布局层级,从而提高性能2 用到什么draw什么,间接提高性能。
2017-01-09 07:27:04
13491
原创 【Android】你可能不知道的Support(一) 0步自动定向刷新:SortedList
打算写一个系列了,讲解Android Support包内那些常用or冷门有用的工具类的合集。最近leader在优化IM会话列表,同事以前的做法是无脑notifyDatasetChanged()刷新RecyclerView的。在消息聊得很嗨很多的时候,界面频繁刷新,会话列表会出现丢失焦点现象。且性能毕竟不高。遂想采用**定向刷新**。同事知道我以前研究过DiffUtil和定向刷新相关内容,于是便和我讨论。
2016-12-07 08:34:07
5683
2
原创 【Android】快速实现仿美团选择城市界面,微信通讯录界面
概述本文是这个系列的第三篇,不出意外也是终结篇。因为使用经过重构后的控件已经可以快速实现市面上带 索引导航、悬停分组的列表界面了。 在前两篇里,我们从0开始,一步一步实现了仿微信通讯录、饿了么选餐界面。 (第一篇戳我 第二篇戳我) 这篇文章作为终结篇,和前文相比,主要涉及以下内容: * 重构悬停分组,将TitleItemDecoration更名为SuspensionDecoration,数据
2016-11-29 10:33:43
11097
9
原创 【Android】仿斗鱼滑动拼图验证码控件
上周一总监让我研究一波滑动验证码,说项目可能会上。我想了一下好像在斗鱼、淘宝都见过,结果下了这两个app,发现怎么点也出不来滑动验证码。于是,我就去web端斗鱼看了一下,果然,每次登陆都会出现验证码。好吧,那我们这次的目标就定为 在 Android端app上,自定义View,仿一个web端滑动验证码吧
2016-11-24 08:44:19
25794
1
原创 设计模式(二) 三种适配器模式 总结和使用场景
转载请标明出处: http://blog.csdn.net/zxt0601/article/details/52703280本文出自:【张旭童的博客】一 概述定义:适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)。属于结构型模式主要分为三类:类适配器模式、对象的适配器模式、接口的适配器
2016-10-18 16:34:41
35660
15
原创 设计模式(一) 工厂模式 五种写法总结
转载请标明出处: http://blog.csdn.net/zxt0601/article/details/52703280本文出自:【张旭童的博客】系列开篇瞎BB设计模式相关的文章学习与总结,一直有意为之,一直又觉得时机不到。一 是怕自己代码经验还不够,学习了也不懂,强行理解没有意义。二 是怕自己学习了以后总结出来,万一有不对的地方,误人子弟。而在现在的公司摸爬滚打半年后,感觉自己写代码遇到了
2016-10-12 16:47:11
83606
29
原创 【Android】 RecyclerView、ListView实现单选列表的优雅之路.
转载请标明出处: http://blog.csdn.net/zxt0601/article/details/52703280 本文出自:【张旭童的博客】一 概述:这篇文章需求来源还是比较简单的,但做的优雅仍有值得挖掘的地方。需求来源:一个类似饿了么这种电商优惠券的选择界面: 其实就是 一个普通的列表,实现了单选功能, 效果如图: (不要怪图渣了,我撸了四五遍,公司录出来的GIF就这么
2016-09-29 21:26:58
30059
7
原创 【Android】RecyclerView的好伴侣:详解DiffUtil
本篇文章已授权微信公众号 hongyangAndroid (鸿洋)独家发布 转载请标明出处: http://blog.csdn.net/zxt0601/article/details/52562770 本文出自:【张旭童的博客】 (http://blog.csdn.net/zxt0601)一 概述DiffUtil是support-v7:24.2.0中的新工具类,它用来比较两个数据集,寻找出旧数据
2016-09-17 19:33:49
67177
36
【Android】详解7.0带来的新工具类:DiffUtil 博文代码
2016-09-17
【Android】ListView、RecyclerView、ScrollView里嵌套ListView 相对优雅的解决方案:NestFullListView
2016-09-10
【Android 】仿微信通讯录 导航分组列表-下自定义View为RecyclerView打造右侧索引导航栏IndexBar
2016-09-06
【Android 仿微信通讯录 导航分组列表-上】使用ItemDecoration为RecyclerView打造带悬停头部的分组列表,修改bug版本
2016-08-31
自定义ViewGroup实现流式布局(支持ViewGroup Padding, 子View margin,每行高度可以不一样)
2016-08-31
【Android 仿微信通讯录 导航分组列表-上】使用ItemDecoration为RecyclerView打造带悬停头部的分组列表
2016-08-29
一个控件搞定Android item侧滑删除菜单
2016-08-24
为RecyclerView 添加 多个 HeaderView FooterView
2016-08-22
为RecyclerView 添加 HeaderView(FooterView)
2016-08-21
leakcanary分析内存泄露
2016-03-30
Android 文字颜色 背景 触摸点击 反馈色 之selector的那些事儿
2016-03-16
波浪滚动圆球View
2016-01-28
医生 我又来问问题了 不要嫌我烦 哈哈
2016-08-28
关于上个宿主和插件之间通信的问题,医生能否给段代码让我研读一下呢,
2016-08-27
医生我又来问问题了,贵司JumpUtils类是如何写的?
2016-08-27
您的书 上海南京路的那个书店还没有卖的呢,啥时候上新。哈哈
2016-08-24
您遇到问题的解决方式
2016-08-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人