我想爲Android創建一個簡單的3D應用程序,該應用程序將在OpenGL視圖(與API演示中的SurfaceViewOverlay示例非常相似)上分層添加視圖。我遇到了一個試圖用擴展的GLSurfaceView類實現該方法的問題。我已經設置了一個示例,我正在嘗試將this demo與API Oerlay演示相結合。如果我嘗試轉換爲這樣的馬丁的VortexView對象(替換API演示線44-46)Android OpenGL擴展GLSurfaceView空指針異常
VortexView glSurfaceView=
(VortexView) findViewById(R.id.glsurfaceview);
我得到一個ClassCastException錯誤(這是可以理解的,因爲我認爲鑄造是相當具體的),所以我猜想我正在尋找一種方法來將視圖從GLSurfaceView實例轉移到新的子類,或者將一個子類的創建後的渲染表面設置爲XML定義的視圖。
編輯: 我已經取得了一些進展試圖得到這個工作 - 在API例如 認爲XML使用 (從ApiDemos/RES /佈局/ surface_view_overlay.xml)
<android.opengl.GLSurfaceView android:id="@+id/glsurfaceview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
如果我將該元素更改爲
com.domain.project.VortexView 它將使用上面的代碼正確執行轉換,但在命中surfaceCreated和surfaceChanged例程時生成空指針異常(我認爲它是GLThread類中的調用方法基於行號)在GLSurfaceView類中。所以,也許我應該改變這個問題 - 如何在不生成surfaceCreated和surfaceChanged上的NullPointerExceptions的情況下實現GLSurfaceView的擴展,或者如何調試它們而無需GLSurfaceView.java的源代碼?
感謝這幫了我。您應該將問題標記爲已回答 – stealthcopter 2011-01-24 22:25:33
已標記,謝謝。很高興有幫助。 – 2011-03-21 23:07:07