最近在做带透明MP4视频的渲染播放,原理就是视频的一半是只有黑白颜色的透明通道,另一半则是视频原来的画面,只要利用OpenGLES在渲染时提取原来画面的对应位置上的透明通道的透明度,设置到原来画面的像素上,就可以达到播放透明视频的效果。

原理很简单,实现也不难,但是中间遇到了一些坑,折腾了一段时间才弄明白,主要原因还是基础原理不了解,还是要多学习。

More...

最近陪我征战10多年的IO1.1光(左)荣(键)退(双)休(击)了,想来修修补补用到现在,实在不容易。如果微软出IO1.1复刻,我直接买爆。

本来可以再修一下继续用,但是想来还是不折腾了,直接下单MX Master 3。不得不说,手感确实还可以,办公一流,但前提是可以用Logitch Options。那么问题来了,罗技并没有出基于Linux版本的Logitch Options……

为了解决这个问题,我所找到的方案有:

More...

当我们使用setLayoutParams修改控件尺寸时,要注意控件内部的子View不一定会被回调onMeasure。所以会存在设置控件尺寸后,内部的子View尺寸没有被改变的情况。

具体原因看源码,setLayoutParams内部会回调requestLayout(),最终会触发父布局层层回调子View的onMeasure,但是在此之前会先判断子View的布局是否有被修改,因此可能会导致子View没有重新计算自己的尺寸。

关于C艹中的&*的作用,其实是比较基础的知识,但是一段时间不碰就要忘(记性不好),所以要做点笔记方便查找。

More...

typedef可以定义一个类型的别名,一般常用的操作是定义一个结构体的别名,当然常用类型也可以,也可以加入指针:

1
2
3
4
typedef int* Fuck;
Fuck p1;
const Fuck p2 = 0;
const Fuck *p3;

More...

既然有顶层const,自然就会有底层const。

  • 顶层const:表示指针是一个常量
  • 底层const:表示指向的对象是一个常量

More...

这里简单记一下,以防自己忘了。

C++的内存结构分为以下5种:

  • 栈区(Stack)
  • 堆区(Heap)
  • bss段
  • data段(又叫GVAR)
  • text段

More...

事情起因是好久没碰C艹了,想着看看《C++ Primer》复习一下。然后看到了第33页中讲的unsigned char转型的描述:

More...

RxJava上提供了一系列的线程池,用起来确实很方便,不过随便用的话很容易遇到坑。

More...

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×