我正在编写代码,允许用户浏览SD卡上的文件以定位图像,并使用openGL ES 2.0加载它们。当我只使用EditText键入文件路径时,这很好,但现在我已经实现了一个文件浏览器,该文件浏览器使用与我获得的文件路径字符串完全相同的调用“在没有当前上下文的情况下调用openGL API “在LogCat中。从活动返回时没有当前的openGL上下文吗?
我认为这与加载器活动超过GLSurfaceView的顶部有关,所以我设置该活动在任何openGL调用之前终止,但没有骰子。
什么给?
下面是一些代码片段:
当用户点击了装载机
public void backOut(String filePath) {
// inform the main Activity of the file to load...
Intent i = new Intent();
i.putExtra("filePath", filePath);
setResult(Activity.RESULT_OK, i);
// ... and end the load activity
finish();
}
中的文件里面的主要活动,其中包含了GLSurfaceView
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case (1) : {
if (resultCode == Activity.RESULT_OK) {
String toLoad = data.getStringExtra("filePath");
Log.v(TAG, toLoad);
gl.informRendererLoadTexture(toLoad);
}
break;
}
}
}
而且在调用GLSurfaceView
public void informRendererLoadTexture(String filePath){
_filePath = filePath;
queueEvent(new Runnable(){
public void run() {
_renderer.loadGLTexture(_filePath);
}});
是否使用多线程 – 2010-08-26 21:49:06
我只是用它扩展GLSurfaceView类,所以我猜想以后会自动将渲染器从用户界面中分离出来,是的。 但是除了我还没有创建任何我自己或任何其他线程。 – Frank 2010-08-26 21:53:18