首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
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类型详解
参数化类型即我们通常所说的泛型类型,一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类…
下一页
个人成就
文章被点赞
200
文章被阅读
81,849
掘力值
1,529
关注了
4
关注者
27
收藏集
2
关注标签
37
加入于
2016-06-28