2010-08-27 16 views
7

OpenGL kullanarak bazı animasyonlar gösterdiğim bir GLSurfaceView var.Düğme ve GLSurfaceView

Şimdi bu görünüme bir düğme eklemek istiyorum. Bu nasıl başarılır?

Xml düzenine dahil olmadan yapılabilir mi?

cevap

18

Görünümler, Etkinlik'in içerik görünümüne manuel olarak oluşturabilir ve ekleyebilirsiniz. İsterseniz

Button b = new Button(this); 
b.setText("Hello World"); 
this.addContentView(b, 
      new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

: sol üst köşede GLSurfaceView üstünde bir düğme eklenir aşağıdakileri yapabilirsiniz sizin GLSurfaceView veya bir XML düzeni aracılığıyla setContentView yaptıktan sonra Faaliyetinizdeki onCreate yöntemde Ekranda başka bir yerde olmanız için düğmeyi bir düzende eklemeniz ve ardından bu düzeni içerik görünümüne eklemeniz gerekecektir. bunun yerine Gravity.CENTER_VERTICAL vb

ait Gravity.BOTTOM kullanabilirsiniz ekranın alt kısmındaki düğmeye istiyorsanız

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)); 

: aşağıdakileri yapabilirsiniz ekranın ortasında bir düğmeye sahip olmak

GLSurfaceView'iniz rötuş yapıyorsa ya da düğmeniz dokunma olaylarını almazsa, touch olayı yöntemlerinde return super.onTouch ... 'ı iade ettiğinizden emin olun.

+1

Bunun üzerine tökezleyen herkes için, gerektiğinde 'ViewGroup.LayoutParams' işlevini deneyin; Bu (en azından Android Studio) gerekli ithalat yardımcı olacaktır. –