最近在做带透明MP4视频的渲染播放,原理就是视频的一半是只有黑白颜色的透明通道,另一半则是视频原来的画面,只要利用OpenGLES在渲染时提取原来画面的对应位置上的透明通道的透明度,设置到原来画面的像素上,就可以达到播放透明视频的效果。
原理很简单,实现也不难,但是中间遇到了一些坑,折腾了一段时间才弄明白,主要原因还是基础原理不了解,还是要多学习。
最近在做带透明MP4视频的渲染播放,原理就是视频的一半是只有黑白颜色的透明通道,另一半则是视频原来的画面,只要利用OpenGLES在渲染时提取原来画面的对应位置上的透明通道的透明度,设置到原来画面的像素上,就可以达到播放透明视频的效果。
原理很简单,实现也不难,但是中间遇到了一些坑,折腾了一段时间才弄明白,主要原因还是基础原理不了解,还是要多学习。
最近陪我征战10多年的IO1.1光(左)荣(键)退(双)休(击)了,想来修修补补用到现在,实在不容易。如果微软出IO1.1复刻,我直接买爆。
本来可以再修一下继续用,但是想来还是不折腾了,直接下单MX Master 3。不得不说,手感确实还可以,办公一流,但前提是可以用Logitch Options。那么问题来了,罗技并没有出基于Linux版本的Logitch Options……
为了解决这个问题,我所找到的方案有:
当我们使用setLayoutParams
修改控件尺寸时,要注意控件内部的子View不一定会被回调onMeasure
。所以会存在设置控件尺寸后,内部的子View尺寸没有被改变的情况。
具体原因看源码,setLayoutParams
内部会回调requestLayout()
,最终会触发父布局层层回调子View的onMeasure
,但是在此之前会先判断子View的布局是否有被修改,因此可能会导致子View没有重新计算自己的尺寸。
关于C艹中的&
和*
的作用,其实是比较基础的知识,但是一段时间不碰就要忘(记性不好),所以要做点笔记方便查找。
typedef
可以定义一个类型的别名,一般常用的操作是定义一个结构体的别名,当然常用类型也可以,也可以加入指针:
1 | typedef int* Fuck; |
事情起因是好久没碰C艹了,想着看看《C++ Primer》复习一下。然后看到了第33页中讲的unsigned char
转型的描述:
RxJava上提供了一系列的线程池,用起来确实很方便,不过随便用的话很容易遇到坑。
Update your browser to view this website correctly. Update my browser now