注释参数opengl的surfaceview使用findViewById返回null问题解决

在写这篇文章之前,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会维持高利润,也会维持竞争局面,国外的竞争不是打死对方的那种。你看日本有尼康,佳能,索尼,都做相机,大家都过得很滋润。别看一堆厂,其实真正控制的是后面的那几个财团——有些竞争对手,后面其实是一家人。

posted @ 2013-05-18 18:22  xinyuyuanm  阅读(338)  评论(0编辑  收藏  举报