Ben bir Android OpenGL uygulamasını başladı ve şu sınıfları:Android glSurfaceView/Java
sınıf A'nın onCreate çağrıldığında, bu tip B sınıfı bir nesne oluşturur ve çağrılarıclass A extends Activity
class B extends GlSurfaceView implements Renderer
:
Şimdiye kadar çalışıyor ve birkaç gün geçirdim.
Artık uygulamamın içine düğmeler eklemek istedim ve SurfaceViewOverlay örneğini buldum. Bu bir görünüm hiyerarşisi oluşturmak için bazı XML kullanır. nasıl görüşlerimi başlatmak olacağını,
<android.opengl.GLSurfaceView android:id="@+id/glsurfaceview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout android:id="@+id/hidecontainer"
android:orientation="vertical"
android:visibility="gone"
android:background="@drawable/translucent_background"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent">
...
Şimdi akılda benim orijinal sınıf hiyerarşisi tutarak: Ben XML kodu I çok benzer bir şekilde basitçe kesilmiş oluşturmak ve yapıştırmak istedi? A sınıfımın onCreate() 'ına ne yazmalıyım?
kullanıyorum çalıştı:Bobject = new B(this);
GLSurfaceView glSurfaceView =
(GLSurfaceView) findViewById(R.id.glsurfaceview);
glSurfaceView.setRenderer(Bobject);
Ve düğmeleri ve ekranda GL görünümünü çizmek, ama GL görünüm muslukları/tıklama herhangi bir giriş de alamaması. Bobject en onTouchEvent() olarak adlandırılır, çünkü bu sadece olarak kullanılıyor olarak
Bu olasıdır:
Renderer
ve bir:
glSurfaceView
nesne.
Yukarıdaki kod yerine, gerçekten istediğim şey, Bobject'in glSurfaceView öğesini değiştirmesidir. Ama bunu nasıl yapacağımı bilmiyorum. SeeViewById() öğesini bulduğumda, glSurfaceView zaten şimdilik oluşturulmuş gibi görünüyor. GL görünümü için B tipi bir nesneyi kullanmayı nasıl isteyebilirim?
Herhangi bir yeni kullanıcı hatası için üzgünüz. Android için tamamen yeni.
DÜZENLEME:
şunlarla çalıştı: Ben de bu çalıştı
<com.bla.bla.B
android:id="@+id/glsurfaceview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Ve seni arıyorum benim bir sınıf yapıcısı: Benim XML dosyasında , ben GLSurfaceView değiştirdi:
// This returns null
Bobject = (B) findViewById(R.id.glsurfaceview);
// And this suspends the application. :(
setContentView(R.layout.surface_view_overlay);
XML dosyasımda/Activity'ımda glSurfaceView öğesini genişleten özel sınıfımı nasıl kullanmalıyım?
Aynı sorunla uğraştım ve bu şeyi gösteren bir uygulama bulamadım. Birisi örnek bir uygulama gösterebilir mi? Her yerde android örnekleri bu ünlü SurfaceOverlayView örneğini bulmak için görünmüyor olabilir. Şimdiden teşekkürler. – rgngl