Ho una GLSurfaceView dove mostro alcune animazioni usando OpenGL.Button e GLSurfaceView
Ora desidero aggiungere un pulsante a questa vista. Come è stato realizzato?
Può essere eseguito senza coinvolgere il layout xml?
Ho una GLSurfaceView dove mostro alcune animazioni usando OpenGL.Button e GLSurfaceView
Ora desidero aggiungere un pulsante a questa vista. Come è stato realizzato?
Può essere eseguito senza coinvolgere il layout xml?
È possibile creare manualmente e aggiungere viste alla visualizzazione del contenuto dell'attività. Nel metodo onCreate nella vostra attività dopo aver fatto setContentView sul GLSurfaceView o tramite un file XML di layout è possibile effettuare le seguenti disposizioni, che aggiunge un pulsante sulla parte superiore del GLSurfaceView nell'angolo in alto a sinistra:
Button b = new Button(this);
b.setText("Hello World");
this.addContentView(b,
new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
Se si desidera che il per essere da qualche altra parte sullo schermo, sarà necessario aggiungerlo a un layout e quindi aggiungere tale layout alla vista del contenuto. Per avere un pulsante che si trova nel centro dello schermo è possibile effettuare le seguenti operazioni:
LinearLayout ll = new LinearLayout(this);
Button b = new Button(this);
b.setText("hello world");
ll.addView(b);
ll.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL);
this.addContentView(ll,
new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
Se si desidera che il pulsante nella parte inferiore dello schermo, è possibile utilizzare al posto di Gravity.BOTTOM Gravity.CENTER_VERTICAL ecc
Assicurati di chiamare return super.onTouch ... nei tuoi metodi di evento touch se GLSurfaceView sta intercettando tocchi, altrimenti il tuo pulsante non riceverà gli eventi touch.
Per chiunque altro si imbatta in questo, prova 'ViewGroup.LayoutParams' quando necessario; questo aiuterà (almeno per Android Studio) a trovare l'importazione necessaria. –