Android glSurfaceView,使用XMLJava进行叠加

概述我启动了一个 Android OpenGL应用程序,我有以下类: class A extends Activityclass B extends GlSurfaceView implements Renderer 当调用类A的onCreate时,它会创建一个类B类的对象并调用: setContentView(Bobject) 到目前为止它工作,我花了几天时间. 现在我想在我的应用程序中添加按钮并 我启动了一个 Android OpenGL应用程序,我有以下类:
class A extends Activityclass B extends GlSurfaceVIEw implements Renderer

当调用类A的onCreate时,它会创建一个类B类的对象并调用:

setContentVIEw(Bobject)

到目前为止它工作,我花了几天时间.

现在我想在我的应用程序中添加按钮并找到SurfaceVIEwOverlay示例.这使用一些XML来创建视图层次结构.我想创建一些非常类似于我简单剪切和粘贴XML代码的东西:

<androID.opengl.GLSurfaceVIEw androID:ID="@+ID/glsurfacevIEw"            androID:layout_wIDth="match_parent"            androID:layout_height="match_parent" />    <linearLayout androID:ID="@+ID/hIDecontainer"            androID:orIEntation="vertical"            androID:visibility="gone"            androID:background="@drawable/translucent_background"            androID:gravity="center"            androID:layout_wIDth="match_parent"            androID:layout_height="match_parent">            ...

现在请记住我原来的类层次结构,如何初始化我的视图?我应该在A班的onCreate()中写什么?

我试过用:

Bobject = new B(this);GLSurfaceVIEw glSurfaceVIEw =        (GLSurfaceVIEw) findVIEwByID(R.ID.glsurfacevIEw);    glSurfaceVIEw.setRenderer(Bobject);

它确实在屏幕上绘制按钮和GL视图,但GL视图无法从点击/点击中获取任何输入.

这可能是因为Bobject的ontouchEvent()没有被调用,因为它只被用作:

Renderer

而不是:

glSurfaceVIEw

宾语.

而不是上面的代码,我真正想要的是让Bobject取代glSurfaceVIEw.但我不知道该怎么做.当我找到FindByID()时,似乎已经创建了glSurfaceVIEw.如何让它在GL视图中使用B类对象?

抱歉任何新手的错误.完全是AndroID新手.

编辑:我也试过这个:

我也尝试过以下方法:
在我的XML文件中,我将GLSurfaceVIEw更改为:

<com.bla.bla.B            androID:ID="@+ID/glsurfacevIEw"            androID:layout_wIDth="match_parent"            androID:layout_height="match_parent" />

在我的A类构造函数中,我调用:

// This returns nullBobject = (B) findVIEwByID(R.ID.glsurfacevIEw);// And this suspends the application. :(setContentVIEw(R.layout.surface_vIEw_overlay);

我应该如何使用我的XML文件/ Activity中扩展glSurfaceVIEw的自定义类?

解决方法 好的,所以这样做的正确方法是在B类中有一个构造函数,它接受:
B(Context context,AttributeSet attrs){  super(context,attrs);}

在XML布局中,使用:

<com.bla.bla.B        androID:ID="@+ID/glsurfacevIEw"        androID:layout_wIDth="match_parent"        androID:layout_height="match_parent" />

我的代码中缺少的是构造函数签名.

总结

以上是内存溢出为你收集整理的Android glSurfaceView,使用XML / Java进行叠加全部内容,希望文章能够帮你解决Android glSurfaceView,使用XML / Java进行叠加所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1149294.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存