2012-08-24 20 views
6

Android -Sandwich türünde özel bir UI üzerinde çalışıyorum, GLSurfaceView (şeffaf alanlar ile) üzerinde küçük bir Galeri Görünümü (LinearLayout + bazı widget'lar). |Android Görünümler arasında GLSurfaceView nasıl eklenir?

<User> 

TOP Görünüm
--- GalleryView
: Ben kurma düşünüyorum nasıl budur
--- GLSurfaceView (saydam alanlarla)
|

ALT Görünüm

şeffaf alanlar üzerinde siyah arka plana sahip GLSurfaceView düzenli modunda

, bu yüzden alt tabakayı göremiyorum ama (widget'larla) --- LinearLayout I (true) setZOrderOnTop kullandığınızda; Alt tabakayı görebiliyorum ama üst tabaka (galeri) de Glsurface görünümünden geri gidiyor. Şemada nasıl istediğiniz görünümü gerçekleştirebilirim?

XML kodu (yerine GalleryView ait AnalogClock ile) kukla Örnek:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/RelativeLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#920000" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/LinearLayout1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|right" > 

     <AnalogClock 
      android:id="@+id/analogClock2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 
    </LinearLayout> 

    <com.test.CustomGlView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/gl_view" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" /> 

    <AnalogClock 
     android:id="@+id/Gallery_dummyview" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

</RelativeLayout> 
+0

Bizden tam olarak ne istediğini anlamadım? XML düzenini yazarken yardım ister misiniz? –

+2

Sanırım sorun, düzende değil, GLSurfaceView yerleşmesinde. Varsayılan olarak, ne yapmam olursa olsun şeffaf bir alan göstermez, ben setZOrderOnTop (true); ancak bu ayar yüzeyi tüm yol üstüne koyar ... böylece aynı düzen kompozisyonu nasıl olur ve şeffaf bir alana sahip olur Glsurfaceview? – prot0n

cevap

2

Sen bunu yapamaz.

GLSurfaceView'in Yüzeyi, View tabanlı UI'den ayrı bir bileşim katmanındadır. Görünümlerin üstünde veya altında olabilir, ancak Görünüm öğeleri arasında sandviç görünmüyor olabilir.

Bunun yerine TextureView (API 14+) kullanabilirsiniz. Uygulamaya göre Görünüm katmanına işlenecek, ancak birleştirilmiş bir Yüzey vardır, bu nedenle düzen diğer Görünümler gibi çalışır. GLSurfaceView'de bulunanlara güvenmek yerine GLES için kendi EGL kurulumunuzu ve iş parçacığı yönetiminizi sağlamanız gerekecek, ancak örneklerini Grafika'da bulabilirsiniz.

İlgili konular