在写这篇文章之前,xxx已经写过了几篇关于改注释参数主题的文章,想要了解的朋友可以去翻一下之前的文章
尼玛,搞了一年多引擎,苦逼的我又开始研究起android开发来了
手里有个需求须要应用Opengl 画YUV格式的视频数据,所以就写了小东东,结果丫的就是获取不了view,代码如下
先看代码好了
1,继承opengl的surfaceView的类
public class MyGLSurface extends GLSurfaceView {
private MyGLRender mMyGLRender;
public MyGLSurface(Context context) {
super(context);
}
public MyGLSurface(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyGLSurface(Context context, AttributeSet attrs, int defStyle) {
super(context);//这里这么写也是很不厚道的
}
}
2,再次继承了下面的类,用来处置一些UI以外的逻辑
public class MyGLViewForLogic extends MyGLSurface {
public MyGLViewForLogic(Context context) {
super(context);
initVideoView();
}
public MyGLViewForLogic(Context context, AttributeSet attrs) {
this(context, attrs, 0);//出问题的就是这里啦
//super(context, attrs);//下面的注释失落,这句打开就好了
}
public MyGLViewForLogic(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
}
注释里头说了问题在哪里了,其实呢一般来讲如果view要加入到xml中而不是运行时添加到话,那么就须要应用到带有AttributeSet 的构造方法。
也就是第二个构造函数了,结果不小心给写成了带三个参数的,而带三个参数的基类呢,又写成了一个参数的,所以就悲剧了。
三个有问题的地方我都加了注释,各位看看就明白鸟
好了,等有空了教教大家怎么用opengl画yuv数据
文章结束给大家分享下程序员的一些笑话语录:
不会,Intel会维持高利润,也会维持竞争局面,国外的竞争不是打死对方的那种。你看日本有尼康,佳能,索尼,都做相机,大家都过得很滋润。别看一堆厂,其实真正控制的是后面的那几个财团——有些竞争对手,后面其实是一家人。