j'ai commencé une application OpenGL Android et j'ai les classes suivantes:Android glSurfaceView avec superposition en utilisant XML/Java
class A extends Activity
class B extends GlSurfaceView implements Renderer
Lorsque la classe onCreate de A est appelée, elle crée un objet de type classe B et appelle:
setContentView(Bobject)
Jusqu'à présent cela fonctionne et j'ai passé quelques jours dessus.
Maintenant, je voulais ajouter des boutons à mon application et trouvé l'exemple SurfaceViewOverlay. Cela utilise du code XML pour créer une hiérarchie de vues. Je voulais créer quelque chose de très semblable à je simplement couper et coller le code XML:
<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">
...
garder à l'esprit maintenant ma hiérarchie de classe d'origine, comment pourrais-je initialiser mon point de vue? Que dois-je écrire dans onCreate() de ma classe A?
J'ai essayé d'utiliser:
Bobject = new B(this);
GLSurfaceView glSurfaceView =
(GLSurfaceView) findViewById(R.id.glsurfaceview);
glSurfaceView.setRenderer(Bobject);
Et il ne tire les boutons et la vue GL sur l'écran, mais la vue GL ne peut pas prendre en aucune entrée des robinets/clics.
probablement parce onTouchEvent de Bobject() n'est pas appelé car il est seulement utilisé comme:
Renderer
et non pas:
glSurfaceView
objet
. Au lieu du code ci-dessus, ce que je veux vraiment, c'est que Bobject remplace glSurfaceView. Mais je ne sais pas comment faire ça. Quand je trouve findById(), il semble que glSurfaceView soit déjà créé pour le moment. Comment puis-je lui demander d'utiliser un objet de type B pour la vue GL?
Désolé pour toutes les erreurs de débutant. Complètement nouveau sur Android.
EDIT: J'ai aussi essayé ceci:
J'ai essayé aussi: Dans mon fichier XML, j'ai changé le GLSurfaceView à:
<com.bla.bla.B
android:id="@+id/glsurfaceview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Et dans mon Un constructeur de classe J'appelle: Comment utiliser ma classe personnalisée qui étend glSurfaceView dans mon fichier/activité XML?
Je suis coincé avec le même problème et n'a pas pu trouver une application entière démontrant cette chose. Quelqu'un peut-il montrer un exemple d'application? Je ne peux pas sembler trouver ce fameux exemple de SurfaceOverlayView à partir d'échantillons android n'importe où. Merci d'avance. – rgngl