- 博客(10)
- 收藏
- 关注
原创 RxJava总结
什么是RxJava?RxJava在GitHub上《RxJava》的自我介绍是:a library for composing asynchronous and event-based programs using observable sequences for the Java VM.(一个在Java VM 上使用可观测的序列来组成异步的,基于事件的程序的库),有些人可能感到疑惑,其实本质上可以用一词来概括——“异步”,它就是一个异步的操作库,而别的定语都基于这之上。RxJava的优点是什么?
2021-06-16 15:19:09
349
原创 Android消息机制总结
概述:一个thread会有一个MessageQueue,一个Looper,多个Handler,MessageQueue内有多个Message
2021-06-07 17:31:36
233
2
原创 视频编码、解码、I帧、B帧、P帧 等基础音视频概念
1. 视频编码所谓视频编码方式就是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。视频流传输中最为重要的编解码标准有国际电联的H.261、H.263、H.2642. 视频解码解码的逆过程3. I帧I帧又称帧内编码帧,是一种自带全部信息的独立帧,无需参考其他图像便可独立进行解码,可以简单理解为一张静态画面。视频序列中的第一个帧始终都是I帧,因为它是关键帧。4. P帧P帧又称帧间预测编码帧,需要参考前面的I帧才能进行编码。表示的是当前帧画面与前一帧(前一帧可能是I
2021-06-07 17:15:41
1337
原创 自定义View问题与总结
问题:一个自定义View,继承Android#View,没有重写任何函数。放在一个LinearLayout(宽高都是100dp)中,该自定义view宽高属性都是wrap_content,那么这个布局显示
2021-06-07 17:07:37
442
原创 SurfaceView总结
我们知道View是通过刷新来重绘视图,系统通过发出VSSYNC信号来进行屏幕的重绘,刷新的时间间隔是16ms,如果我们可以在16ms以内将绘制工作完成,则没有任何问题,如果我们绘制过程逻辑很复杂,并且我们的界面更新还非常频繁,这时候就会造成界面的卡顿,影响用户体验,为此Android提供了SurfaceView来解决这一问题。SurfaceView 拥有独立的绘图表面,即它不与其宿主窗口共享同一个绘图表面。由于拥有独立的绘图表面,因此SurfaceView的UI就可以在一个独立的线程中进行绘制。又由于不
2021-06-07 16:40:23
221
原创 onCreate()、onResume() 中可以获取View的宽高吗?怎么做? View.post{} 为什么可以获取?
回答: View的宽高是在onLayout阶段才能最终确定的,而在Activity#onCreate中并不能保证View已经执行到了onLayout方法,也就是说Activity的声明周期与View的绘制流程并不是一一绑定。所以onCreate() 和 onResume() 中获取不到View的宽高值。以Handler为基础,View.post() 将传入任务的执行时机调整到View 绘制完成之后。代码验证:...
2021-06-07 16:34:42
1255
原创 LayoutInflater.inflate()总结
1.什么是LayoutInflater? 一个布局的xml一般可以调用Activity的setContentView()加载布局,然后把它显示到屏幕上,其实它底层就是Android系统服务中的LayoutInflater(布局服务),用的Android内置的Pull解析器来解析布局。一般在Android动态加载布局或者添加控件用得较多。 LayoutInflater就是一个用于加载布局的系统服务,就是实例化与Layout XML文件对应的View对象,不能直接使用, 需要通过***getLayo.
2021-06-07 16:27:12
281
原创 RecycleView总结
本文打算从几个地方说起。将RecyclerView当成一个普通的View,分别分析它的三大流程、事件传递(包括嵌套滑动) 分析RecyclerView的缓存原理,这也是RecyclerView的精华所在 分析RecyclerView的Adapter、LayoutManager、ItemAnimator和ItemDecoration RecyclerView的扩展,包括LayoutManager的自定义和使用RecyclerView常见的坑一.Recycleview绘制三大流程:1.概述:
2021-06-04 20:10:45
454
原创 Activity切换常用的动画实现方式
1.overridePendingTransition():此方式只需要在启动另一个activity和退出activity的时候调用就行,这个方法接收两个参数,一个是新启动的activity进入时的动画,另一个是当前activity消失时的动画。启动:...
2021-06-04 19:25:21
406
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人