2011-02-17 26 views
0

我正在開發一個OpenGL ES項目,新手體育場,所以我得到了關於GLSurfaceView和Renderer實現的問題。 我有一個佈局,其中包含FrameLayout中的GLSurfaceView,我用它來顯示渲染的動畫(動畫渲染在我自己的渲染實現中)。在2個活動中重用GLsurfaceView

所有這些都發生在一個活動中。

然後我需要啓動另一個活動,但要使用相同的視圖和相同的渲染器,我嘗試在新活動中創建新的GLSurfaceView(也在FrameLayoyt中,與第一個活動相同),但它崩潰了遠。所以我認爲我必須重用我在第一個活動中使用的GLSurfaceView和Renderer。

達到此目的的正確方法是什麼?

回答

1

取讀這個Android文檔頁面: GLSurfaceView

它說:

活動生命週期
當活動被暫停,重新恢復了GLSurfaceView必須通知。 GLSurfaceView客戶端需要在活動暫停時調用onPause(),並在活動恢復時調用onResume()。這些調用允許GLSurfaceView暫停並恢復渲染線程,並允許GLSurfaceView釋放並重新創建OpenGL顯示。

因此,我建議你做到以下幾點:

private GLSurfaceView mGlSurface; 

@Override 
protected void onResume() { 
    super.onResume(); 

    mGlSurface.onResume(); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 

    mGlSurface.onPause(); 
} 

希望這有助於。

+0

這有助於。謝謝:) 無論如何,我想聽聽這是否是重用opengles機制的正確方法。 – user584513 2011-02-17 12:37:22

相關問題