Witam, chcę, aby mój widok DrawingSurface był przezroczysty. próbowałem wielu rzeczy, ale to nie działa.
Oto mój kod xml, aby mój widok powierzchni był przezroczysty
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/icon" >
</ImageView>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00000000" >
<codewalla.android.drawings.DrawingSurface
android:id="@+id/drawingSurface"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</codewalla.android.drawings.DrawingSurface>
</LinearLayout>
</FrameLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/colorRedBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="10"
android:onClick="onClick"
android:text="R" />
<Button
android:id="@+id/colorBlueBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="10"
android:onClick="onClick"
android:text="G" />
<Button
android:id="@+id/colorGreenBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="10"
android:onClick="onClick"
android:text="B" />
<Button
android:id="@+id/undoBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="10"
android:onClick="onClick"
android:text="U" />
<Button
android:id="@+id/redoBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="10"
android:onClick="onClick"
android:text="R" />
</LinearLayout>
</RelativeLayout>
android
surfaceview
Sunil Pandey
źródło
źródło
onCreate()
”, a zmiana formatu pikseli z RGB565 na RGB888 jest również bardzo konieczna.sfvTrack.setZOrderOnTop(true);
spowoduje umieszczenie surfaceView na górze okna, co oznacza, że nie można dodawać elementów na wierzchu surfaceView.
Jeśli chcesz dodać widoki na górze widoku powierzchni; powinieneś rozważyć użycie:
setZOrderMediaOverlay(true);
zamiast. Spowoduje to umieszczenie tego SurfaceView na wierzchu innych surfaceViews, ale nadal za oknem, umożliwiając dodawanie innych widocznych widoków na górze widoku powierzchni.
źródło
Czy Twój DrawingSurface i rozszerzenie SurfaceView?
Nie ma sposobu, aby SurfaceView robił to, co chcesz. Mechanika widoku powierzchniowego jest taka, że nie może mieć za sobą nic widocznego. (zobacz odpowiedź tutaj http://groups.google.com/group/android-developers/browse_thread/thread/8d88ef9bb22da574 )
Przetestowałem Twoją hierarchię z niestandardowym widokiem rozszerzającym SurfaceView i widzę Twój problem. Jeśli przełączę się na widok niestandardowy, który po prostu rozszerza widok, mogę uzyskać przezroczystość.
źródło
TexttureView
będzie lepsze dla twoich potrzeb niżSurfaceView
, jak sądzę.źródło