自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Android自定义view之View的测量过程全解析

Android 应用层开发中绕不开自定义 View 这个话题,虽然现在 Github 上有形形色色的开源库供大家使用,但是作为一名开发者而言,虽然不提倡重复造轮子,但是轮子都是造出来的。碰到一些新鲜的 UI 效果时,如果现有的控件无法完成任务,那么我们就应该想到要自定义一个 View 了。我们知道,在 Android 中 View 绘制流程有测量、布局、绘制三个步骤,它们分别对应 3...

2019-06-10 11:25:55 1430 1

原创 Kotlin中的字符串比较

在java中,执行比较运算的操作一般有: ==  和  equals()两个操作符而且在java中== 比较的是两个字符串的引用是否相同, 而 equals()则是比较两个字符串的内容是否相同我们可以通过一个例子来进行一下验证:String a1 = "ab";String a2 = "ab";String b1 = new String("ab");String b2 = "...

2018-12-12 11:19:23 3572

原创 Android自定义View之Touch事件分发机制源码解析

在Android系统中View的结构为树形结果,那么就会出现上层的view盖住下层的view的情况发生,而当我们点击上层View的时候,这个时候是上层的View还是盖住的下层的View可以消费这个touch事件呢?而为了解决这个问题,就引出了Android中的Touch事件的分发机制.而在Android中Touch事件的分发又分为View和ViewGroup的事件分发,由此我们先从简单的V...

2018-11-12 11:31:02 719

原创 Android之ConstraintLayout用法全面解析

在Android开发中我们在写布局时候经常会使用到布局的嵌套,比如常见的Android布局FrameLayout LinearLayoutRelativeLayout等布局的相互嵌套,而且在写xml布局时候对布局可视化的操作不是很到位(很鸡肋)而ConstarintLayout的出现就能够有效的解决以上的两个痛点,即:  1.布局嵌套过多的问题 2.布局可视化支持不够哟好的问题...

2018-11-11 17:56:16 3012 2

原创 在Android中合理的使用Rxjava封装同步和异步调用

同步和异步的区别: 一般我们在程序中看到一些耗时的操作的方法,如果它有返回值等待调用者接收的情况就属于同步调用此时当前线程会 阻塞在这里等待结果的返回 异步调用方法一般会调用方法是传入响应的监听器类listener通过接口回调的方式来通知调用者结果而当前线程是不 会阻塞等待结果返回的 当需要封装现有 API 为 Observable 的时候,可以从一下几点来考虑: 如果为同步 ...

2018-11-10 09:35:10 8768

原创 Rxjava中的Subject / Precessor

在Rxjava中Subject / Processor 是一种特殊的存在,它既是Observable又是Observer,rxjava官网中给出的解释是可以将Subject / Processor看成是一个桥梁或者是代理.Subject常见类型有:        AsyncSubject ,  BehaviorSubject ,  ReplaySubject,  Publish...

2018-11-10 09:34:03 300

原创 Rxjava中的Hot Observable 和 Cold Observable

在Rxjava中Observable 有 Hot 和 Cold之分.    Hot Observable:        Hot Observable无论有没有观察者进行订阅事件始终都会发生. 当Hot Observable 有多个订阅者时(即多个订阅者进行订阅时),Hot Observable与订阅者们的关系是一对多的关系,可以与多个订阅者共享信息. Cold Observa...

2018-11-10 09:33:26 1107

原创 Rxjava中compose()操作符的使用

Rxjava中compose操作符的使用:      Compose的作用:  对 Observable 进行整体的变换//rxjava中compose的使用//在安卓中我们使用rxjava进行操作的时候经常会在子线程进行一下常见的操作//然后会回到主线程中进行一些更新UI视图的操作Observable.create(new ObservableOnSubscribe<Int...

2018-11-10 09:33:14 5094

原创 Rxjava中的Observable的简化版本Single Completable Maybe

在Rxjava2中,Observale和Flowable都是用来发射数据流的,但是,我们在实际应用中,很多时候,需要发射的数据并不是数据流的形式,而只是一条单一的数据,或者一条完成通知,或者一条错误通知。在这种情况下,我们再使用Observable或者Flowable就显得有点大材小用,于是,为了满足这种单一数据或通知的使用场景,便出现了Observable的简化版——Single、C...

2018-11-10 09:32:51 1569

原创 Rxjava2中的Backpressure背压策略

rxjava2中的背压Backpressure策略:    在rxjava常见的使用场景我们一般的操作步骤如下:        1.创建被观察者Observable对象在上游生产事件(Event)        2.通过一系列的操作符operators以及subscribeOn()来对上游Observable生产的数据进行加工处理以及         Observable 生产数据...

2018-11-09 17:13:56 2049 2

原创 Rxjava线程调度模型

rxjava的线程控制(调度/切换):subscribeOn()/ observerOn()1.rxjava线程调度控制的作用:        rxjava通过线程调度可以控制Observable(被观察者)/观察者(Observer)工作的线程的类型2.为什么要进行rxjava的线程的调度切换:        在rxjava中被观察者(Observable) / 观察者(Obse...

2018-11-09 16:18:21 676

原创 Rxjava操作符之条件布尔操作符

rxjava操作符之条件布尔操作符:  1.条件布尔操作符的作用:通过设置函数,判断被观察者Observable发送的事件是否符合条件  2.条件布尔操作符的常见类型:  1.all()操作符//all()操作符 //all操作符的作用是判断被观察者Observable发送的所有事件是否都满足指定的条件通过一个布尔值来返回给观察者Observer来进行判断 ...

2018-11-09 15:48:27 301

原创 Rxjava操作符之过滤操作符

1.过滤操作符的作用:过滤/筛选 被观察者(Observable)发送的事件 以及  观察者(Observer)接收的事件rxjava2中的常见的过滤操作符有以下的常见类型:2.根据指定条件过滤事件需求场景为:通过设置指定的过滤条件,当且仅当该事件满足条件,就将该事件过滤(不发送)2.1 filter()过滤操作符//过滤操作符之filter() ...

2018-11-09 15:37:36 318

原创 Rxjava操作符之功能性操作符

Rxjava2常见的功能性操作符有如下的一些:  废话不多说, 直接代码开路:1.subscribe() //功能性操作符 //subscribe()功能是连接被观察者Observable和观察者Observer 之间的桥梁 //创建被观察者对象Observable Observable<Integer> obser...

2018-11-09 15:19:37 212

原创 Rxjava操作符之组合合并操作符

Rxjava常见的组合合并操作符如下:1.concat()/ concatArray()//组合 / 合并操作符concat() concatArray() //组合多个被观察者的事件,合并后在一起按照串行顺序进行发送 //concat()和concatArray()前者最多合并4个而后者则可以合并>4个的Observable对象的事件序列 ...

2018-11-09 14:59:31 412

原创 Rxjava中flatMap() concatMap() concatMapEager() switchMap()之间的区别

将可观察对象发出的项转换为其他可观察对象是RX编程的重要部分。有几种种常见的转换操作符可以做到这一点,每种操作符都有不同的优点。在下面这个例子中,我将试图解释微妙的差异,并指出这些操作符的最佳用法。直接上代码://变换操作符flatMap() switchMap() concatMap() concatMapEager()的区别以及开发中使用的注意点 //首先我们创建四...

2018-11-09 14:37:38 994

原创 Rxjava之变换操作符

Rxjava常见的变化操作符如下:1.map()变换符 //转换操作符之map() //通过map()操作符对被观察者发送的每一个事件都通过指定的Function对象的apply()方法进行转换处理 //将之前的事件类型转换成为另外的一种事件类型 //即通过map()操作符将我们的被观察者发送的事件转换成为任意的类型的事件 ...

2018-11-09 14:12:34 200

原创 Rxjava基本操作符详解

Rxjava中的最基本的操作符有如下几个:1.基本创建操作符 create()Observable<Integer> ob = Observable.create(new ObservableOnSubscribe<Integer>() { @Override public void subscribe(Obse...

2018-11-09 13:56:35 271

原创 Rxjava的基本概念

rxjava是一个在jvm上基于事件流实现异步操作的库举一个简单的例子:顾客去饭店吃饭1.进饭店 坐下餐桌 叫服务员 点餐:餐点1 餐点2  餐点3 (顾客 是被观察者(Observable 主要是产生并发送事件)2.服务员通知后厨 并将顾客点的餐点给到后厨 (服务员subscrible 通过订阅来连接被观察者Observable和观察者Observer)3.后厨接收服务员发送...

2018-11-09 11:46:21 260

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除