- 博客(10)
- 资源 (52)
- 收藏
- 关注
原创 DataBinding源码解析
DataBinding是谷歌15年推出的library。DataBinding支持双向绑定,能大大减少绑定app逻辑与layout文件的“胶水代码”,例如findViewById等代码。双向绑定,指的是将数据与界面绑定起来,当数据发生变化时会体现在界面上,反过来界面内容变化也会同步更新到数据上,使用DataBinding能轻松实现MVVM模式。
2017-10-11 19:34:51
4419
9
原创 EventBus源码分析
相信大家都有在项目中使用过EventBus。EventBus是一个性能高效的基于观察者模式的事件发布与订阅框架。借助EventBus,我们只需几行代码便能实现组件之间、线程之间的通信,达到解耦的目的。这篇文章不对EventBus的使用进行介绍,而是格物致知,探究EventBus的源码。
2017-09-24 23:11:20
1152
原创 View的事件分发机制
除了开发者自己,用户不会知道手指在屏幕上轻轻一点的瞬间发生了什么事情。一直以来,通过看书或者看博客,大致对事件分发流程有一定的了解。但毕竟是纸上得来,因此决定总结总结。
2017-09-17 16:42:00
591
原创 butterknife源码分析:代码分析
本文对butterknife的源码进行分析。先从结果入手,分析butterknife生成的文件。然后分析butterknife在编译时的处理过程,以BindView为例子,循序渐进,结合代码,进行分析。
2017-03-24 14:49:38
2910
1
原创 butterknife源码分析:如何处理注解—反射与注解处理器
有时,我们希望在程序运行或者编译时能获取注解的值,并做一些处理。如何想运行时处理注解,需要通过反射(Reflect);如果是编译时,需要用到注解处理器(AbstractProcessor)。这篇文章结合实例介绍了处理注解的俩种方式。
2017-02-17 10:02:52
2236
1
原创 butterknife源码分析:谈一谈Java的注解
说起注解,大家都很熟悉。不管是Java语言本身自带的@Override、@Override,还是热门的第三方框架butterknife的@BindView、retrofit的@Get等、还是SSH开发的@Autowired。这篇博客主要介绍了注解的定义,以及如何自定义注解。
2017-02-08 10:12:29
906
原创 Android缓存-LruCache分析
缓存虽然会占据一定的应用内存或者磁盘空间,却允许你以更快的速度获得你需要的对象。因此缓存避免了重复加载,可以提高应用的响应速度。Android中提供了LruCache类来支持缓存。这篇文章着重于对LruCache源码的分析。类的介绍LruCache持有一定数量对象的引用来避免这些对象被回收。当一个对象被访问时,将会被移到缓存队列的头部;当一个对象添加到已经满的队列时,队列的尾部对象(最不常访问)的对
2015-08-17 14:52:29
704
原创 自定义View—使用clipPath或者BitmapShader实现圆角图片
实现圆角图片的方式有三种,上篇文章中是使用了Xfermode,这篇文章则将总结剩下的两种clipPath、BitmapShader。这里我们跟上一篇一样继承自ImageView。公共部分无论是使用哪种方法,都需要自定义的属性和在构造器中获得相应的属性,因此将这部分放到一起。自定义属性我们这个圆角图片可以定义图片的圆角度数,因此需要自定义这个属性如些:<?xml version="1.0" encod
2015-08-16 22:30:57
4692
原创 自定义View—使用Xfermode实现圆角图片
有些时候,棱角分明的矩形可能不满足我们的需求。我们希望图片是圆角,显得图片更加圆滑,例如手q的头像是圆形的。虽说我到现在没做过一个像样的项目,但是还是先学习下,厉兵秣马。这篇博客主要学习自hongyang前辈的教程,同时也增加自己,作为一个新手,的学习过程,使之详细。此次的圆角图片继承自ImageView,这样可以节省onMeasure步骤。Xfermode和他的儿子们实现圆角图片,我们需要用到Xf
2015-06-06 11:46:52
1664
原创 自定义View—实现滚动TextView(跑马灯)效果
一般来说,自定义View需要以下四个步骤: 自定义View的属性 在View的构造方法中获得自定义的属性 重写onMeasure方法 重写onDraw方法 顾名思义,onMeasure方法是测量View的大小,而onDraw方法是绘制View。先说下我们今天的目标,实现的是滚动的TextView,并且可以设置滚动的速度。值得高兴的是,实现这个功能只需要第四个步骤,,因此,
2015-06-01 14:23:48
3869
1
图说设计模式
2017-12-03
代码整洁之道高清完整版
2017-12-03
不一样的技术创新最终版--阿里巴巴2016双11背后的技术
2017-12-01
阿里巴巴Java开发手册终极版
2017-12-01
Samurai-Native架构设计与项目构建
2017-12-01
阿里巴巴HTTP 2.0实践及无线通信协议的演进之路
2017-11-30
Weex AppFramework架构设计和独立App构建实战
2017-11-30
深入探索Android热修复技术原理(阿里巴巴出品)高清版
2017-11-30
聚划算iOS平台动态化方案LuaView
2017-11-30
自定义View—使用Xfermode实现圆角图片
2015-06-13
自定义View—实现滚动TextView(跑马灯)效果
2015-06-01
ViewPager之多页面滑动切换+游标滑动+ 自动无限轮转+触摸停止
2015-05-26
强化学习在阿里的技术演进与业务创新-高清版
2018-02-09
强化学习在阿里的技术演进与业务创新高清版
2018-02-07
九年双11:互联网技术超级工程高清版
2018-01-29
2017阿里技术年度精选集下高清版
2017-12-19
优酷VR开发过程经验和实践(全景视频的播放及优化)
2017-12-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人