我不明白我的主要活动和 OpenGL 渲染器之间的流程。
当我的应用程序启动时,用户会看到一个非常漂亮的布局,它带有一个显示“开始渲染”的按钮。当用户单击按钮时,他/她将被转移到绘制精美图片的渲染器视图。然后当图片完成后,我想返回主屏幕(有按钮的那个),但我不知道如何。
我尝试从 GLRenderer 调用 setContentView(R.layout.activity_run),但显然它不起作用。然后我尝试创建一个函数 Run.endRendering(),它是一个静态方法,并从 GLRenderer 内部调用。Run.endRendering() 应该调用 setContentView(R.layout.activity_run) 以希望它将视图传输回主屏幕,但是由于 R.endRendering() 是一个静态方法,它不能调用setContentView() 的非静态方法。
所以现在我完全迷路了。有人可以对这个主题有所了解吗?
这些是我拥有的骷髅。
主要活动:
public class Run extends Activity
{
private GLSurfaceView glSurface;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_run);
// in here I mess with the main layout view the user
// is supposed to see. when he/she clicks on a button
// he/she will be transferred to the opengl view
// on button click:
glSurface = new GLSurfaceView(this);
glSurface.setRenderer(new GLRenderer());
setContentView(glSurface);
}
}
和渲染器:
public class GLRenderer implements Renderer
{
// onSurfaceCreated, onDrawFrame, onSurfaceChanged, etc.
// the action happens here. From here I want to return to
// the main activity that created this renderer.
}