Java Android:从GLSurfaceView返回主要活动
我不了解我的主要活动和OpenGL渲染器之间的流程 当我的应用程序启动时,用户将看到一个非常漂亮的布局,我用一个写着“开始渲染”的按钮制作了这个布局。当用户单击该按钮时,他/她将被转移到一个渲染器视图,该视图绘制了一幅非常棒的图片。然后,当图片完成后,我想返回主屏幕(带按钮的屏幕),但我不知道如何返回 我试着从GLRenderer调用setContentView(R.layout.activity_run),但显然不起作用。然后我尝试创建一个函数Run.endRendering(),这是一个静态方法,从GLRenderer内部调用。Run.endRendering()本应调用setContentView(R.layout.activity_Run),希望随后将视图传输回主屏幕,但由于R.endRendering()是一个静态方法,因此它无法调用setContentView()的非静态方法 所以现在我完全迷路了。有人能解释一下这个问题吗 这些是我的骨架 主要活动:Java Android:从GLSurfaceView返回主要活动,java,android,opengl-es,android-activity,renderer,Java,Android,Opengl Es,Android Activity,Renderer,我不了解我的主要活动和OpenGL渲染器之间的流程 当我的应用程序启动时,用户将看到一个非常漂亮的布局,我用一个写着“开始渲染”的按钮制作了这个布局。当用户单击该按钮时,他/她将被转移到一个渲染器视图,该视图绘制了一幅非常棒的图片。然后,当图片完成后,我想返回主屏幕(带按钮的屏幕),但我不知道如何返回 我试着从GLRenderer调用setContentView(R.layout.activity_run),但显然不起作用。然后我尝试创建一个函数Run.endRendering(),这是一个静态
公共类运行扩展活动
{
私人GLSURFACHEVIEW GLSURFACHE;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u运行);
//在这里,我与用户的主布局视图混乱
//当他/她点击按钮时
//他/她将被转移到opengl视图
//点击按钮:
glSurface=新的GLSurfaceView(本);
setRenderer(新的GLRenderer());
setContentView(glSurface);
}
}
和渲染器:
public类GLRenderer实现渲染器
{
//onSurfaceCreated、onDrawFrame、onSurfaceChanged等。
//动作发生在这里,我想从这里回到
//创建此渲染器的主要活动。
}
您可以做的一件事是将GLSurfaceView作为该活动布局的一部分。
活动的UI线程保持运行。在其中创建一个处理程序,负责从布局中删除GLSURFACHEVIEW并显示正常的非opengl视图
Handler mainHandler = new Handler() {
public void handleMessage(Message msg) {
// remove surfaceview from layout and show non-opengl views
}
};
然后可以将活动的引用(可能使用接口)传递给GLRenderer。我可以打电话给你
activity.mainHandler.sendMessage(msg)
使用两个活动,一个用于主活动,一个用于开放式总账。