首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
fb0122
掘友等级
获得徽章 14
动态
文章
专栏
沸点
收藏集
关注
作品
赞
27
文章 27
沸点 0
赞
27
返回
|
搜索文章
最新
热门
酷炫的动画库——Lottie源码解析(二)
在上一节,我们分析了LottieView的playAnimation()的整体流程,我们在最后也提到了,Lottie的动画就是通过一层一层的Layer实现的,其中有CompositionLayer、BaseLayer比较重要,起到了通知更新、分发更新的作用。 但是上一节没有具体…
酷炫的动画库——Lottie源码解析(一)
可以看出这些动画都有很酷炫的效果,如果要通过代码去实现的话就会非常的复杂,但是如果使用Lottie去加载,则非常简单,只需要几行代码就可以搞定,而且帧率大多都会稳定在60FPS。 只需要上面这样几行代码,就可以实现复杂的动画了。可以看出首先是去assert中加载了一个json动…
RxJava2线程切换原理及源码分析
在开始源码阅读前,我们首先先说明一个概念,就是RxJava的事件流的订阅顺序实际上是自下而上的。按照上述例子来说,首先订阅的是observeOn -> map -> suscribeOn -> map -> subscribeOn -> ObservableCreate,为什么…
AsyncTask源码详解
通过上面的例子我们可以看出AsyncTask的基本用法:就是用一个类继承AsyncTask,然后分别实现三个方法: doInBackground()、onProgressUpdate()、onPostExecute()。使用的时候,只需要调用execute()方法即可。那么下面…
Kotlin中的also、let、run、with、apply函数的用法
上述是一个非常简单的Book类,包括三个属性:书名、作者、价格。然后有一个调整价格的方法。 在上述代码中,我们可以看到let的参数为自身,即:block: .(T),将自身作为参数传递。 可以看出来,run更像是Book对象的扩展函数,即:block: T.()。他是将this…
代理模式与Kotlin中的委托模式
从UML类图中可以看到,当客户端想要访问一个对象的时候,可以通过访问Proxy这个代理类,这样就达到了访问控制的目的。下面我们通过一个例子来说明一下代理模式的具体作用。比如现在有一个图书馆,我们可以从图书馆中借书或者买书,那么我们可以定义一个接口类型如下,对比UML类图中的Su…
Kotlin coroutine之协程基础
上述代码将会开启一个新的协程, GlobalScope 表示该协程的生命周期仅受整个应用的生命周期影响。当然我们也可以创建一个新的协程基于某一个线程的生命周期,例如: 在默认情况下,协程会运行在线程共享池。在基于协程的程序中线程仍然会存在,但是一个线程能够运行很多协程,所以我们…
Kotlin 之高阶函数与Lambda表达式与闭包
在上面的实例代码中,将一个函数类型 (R, T) -> R作为参数传递给Collection的扩展函数fold。因此我们可以将该fold函数称为高阶函数。 Lambda表达式的意义用一句话来说明就是:Lambda表达式就是一个匿名函数。 上述代码的filter时IntArray…
kotlin之泛型的使用
上面这段代码是来自于Java的集合List的源码,可以看到List是一个泛型接口,一般情况下当我们想要初始化一个list的时候,应该都是这么写: List<Integer> list = new ArrayList<>(); 当想要向集合中添加一个元素的时候,只需要调用list…
Java中的Type类型详解
参数化类型即我们通常所说的泛型类型,一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类…
下一页
个人成就
文章被点赞
194
文章被阅读
72,270
掘力值
1,474
关注了
3
关注者
25
收藏集
2
关注标签
37
加入于
2016-06-28