transparente studio programacion opacidad móviles fondo desarrollo curso aplicaciones android surfaceview

android - studio - cómo hacer que la superficie sea transparente



opacidad en android studio (4)

Hola a todos, quiero que mi vista DrawingSurface sea transparente. Intenté muchas cosas, pero no funciona.

Aquí está mi código xml para hacer que mi vista de superficie sea transparente

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


¿Es su DrawingSurface y la extensión de SurfaceView?

No hay forma de que SurfaceView haga lo que quiere que haga. La mecánica de la vista de superficie es tal que no puede tener nada visible detrás de ella. (vea la respuesta aquí http://groups.google.com/group/android-developers/browse_thread/thread/8d88ef9bb22da574 )

Probé tu jerarquía con una vista personalizada que extiende SurfaceView y veo tu problema. Si cambio a una vista personalizada que simplemente amplía View, puedo obtener transparencia.


Prueba esto en el constructor:

SurfaceView sfvTrack = (SurfaceView)findViewById(R.id.sfvTrack); sfvTrack.setZOrderOnTop(true); // necessary SurfaceHolder sfhTrackHolder = sfvTrack.getHolder(); sfhTrackHolder.setFormat(PixelFormat.TRANSPARENT);


TexttureView será mejor para sus necesidades que SurfaceView , creo.


sfvTrack.setZOrderOnTop(true);

colocará SurfaceView en la parte superior de la ventana, lo que significa que no puede agregar elementos en la parte superior de la superficie.

Si desea agregar vistas en la parte superior de la vista de superficie; debes considerar usar:

setZOrderMediaOverlay(true);

en lugar. Esto coloca esta SurfaceView encima de otras SurfaceViews, pero aún detrás de la ventana, lo que le permite agregar otras vistas visibles en la parte superior de la vista de la superficie.