Quiero crear una actividad transparente sobre otra actividad.
¿Cómo puedo conseguir esto?
Quiero crear una actividad transparente sobre otra actividad.
¿Cómo puedo conseguir esto?
Agregue el siguiente estilo en su res/values/styles.xml
archivo (si no tiene uno, créelo). Aquí hay un archivo completo:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Transparent" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
</resources>
(El valor @color/transparent
es el valor de color #00000000
que puse en el res/values/color.xml
archivo. También puede usarlo @android:color/transparent
en versiones posteriores de Android).
Luego aplique el estilo a su actividad, por ejemplo:
<activity android:name=".SampleActivity" android:theme="@style/Theme.Transparent">
...
</activity>
<item name="android:windowBackground">@android:color/transparent</item>
android:windowIsFloating
establece en verdadero. Elimine esta propiedad para comportarse como una actividad normal (en este caso coincidiráandroid:style/Theme.Translucent.NoTitleBar
)AppCompatActivity
. Entoncesparent="android:Theme"
estaba bloqueando mi aplicación. Simplemente lo eliminé y funcionó a las mil maravillas. ¡Gracias!Dice así:
fuente
50% black should be #7f000000
. Cada componente (A, R, G, B) puede tomar valores de0-255
.50% of 255 = 127. 127 in Hex = 7F
Que cómo calcular la transparencia (opacidad)En los styles.xml:
En el AndroidManifest.xml:
fuente
Theme.Appcompat.Light.NoActionBar
lugar.background
y poner su color transparente semi preferido enwindowBackground
Declara tu actividad en el manifiesto así:
Y agregue un fondo transparente a su diseño.
fuente
Asigne el tema translúcido a la actividad que desea hacer transparente en el archivo de manifiesto de Android de su proyecto:
fuente
Quería agregar a esto un poco ya que también soy un nuevo desarrollador de Android. La respuesta aceptada es excelente, pero tuve algunos problemas. No estaba seguro de cómo agregar el color al archivo colors.xml. Así es como debe hacerse:
colors.xml
En mi archivo original colors.xml tenía la etiqueta "dibujable":
Y también hice eso para el color, pero no entendí que la referencia "@ color /" significaba buscar la etiqueta "color" en el XML. Pensé que debería mencionar esto también para ayudar a alguien más.
fuente
Lo logré en 2.3.3 simplemente agregando
android:theme="@android:style/Theme.Translucent"
la etiqueta de actividad en el manifiesto.No sé sobre versiones inferiores ...
fuente
AppCompatActivity
si está usando esto.En mi caso, tengo que configurar el tema en tiempo de ejecución en Java en función de algunas condiciones. Entonces creé un tema con estilo (similar a otras respuestas):
Luego, en Java, lo apliqué a mi actividad:
Recuerde un punto importante aquí: debe llamar a la
setTheme()
función antessuper.onCreate(savedInstanceState);
. Perdí este punto y me quedé atrapado durante 2 horas, pensando por qué mi tema no se refleja en el tiempo de ejecución.fuente
En la función onCreate , debajo de setContentView , agregue esta línea:
fuente
Simplemente deje que la imagen de fondo de la actividad sea transparente. O agregue el tema en el archivo XML:
fuente
La forma más fácil que he encontrado es establecer el tema de la actividad en el Manifiesto de Android en
android:theme="@android:style/Theme.Holo.Dialog"
.Luego, en el método onCreate de la actividad, llame
getWindow().setBackgroundDrawable(new ColorDrawable(0));
.fuente
Para la actividad de diálogo uso esto:
Pero también debe configurar su Vista principal en la actividad como invisible. De lo contrario, el fondo será invisible, mientras que todas las vistas serán visibles.
fuente
Además de las respuestas anteriores:
para evitar el bloqueo relacionado con Android Oreo en la actividad
fuente
Acabo de hacer dos cosas e hizo que mi actividad fuera transparente. Estan abajo.
En el archivo de manifiesto, acabo de agregar el siguiente código en la etiqueta de actividad .
Y acabo de establecer el fondo del diseño principal para esa actividad como " # 80000000 ". Me gusta
A mí me funciona perfectamente.
fuente
Si está utilizando
AppCompatActivity
, agregue esto enstyles.xml
En el
manifest
archivo puede agregar este tema a la etiqueta de actividad como estapara más detalles lee este artículo
fuente
Asignarle el tema Translúcido
fuente
Hay dos formas:
El uso
Theme.NoDisplay
seguirá funcionando ... pero solo en dispositivos Android más antiguos. En Android 6.0 y superior, utilizando Theme.NoDisplay sin ponerfinish()
enonCreate() (or, technically, before onResume())
se bloquee su aplicación. Es por eso que la recomendación es usarTheme.Translucent.NoTitleBar
, que no sufre esta limitación ".fuente
Nota 1: en la carpeta Drawable, cree test.xml y copie el siguiente código
// Nota: las esquinas y la forma son según su requisito.
// Nota 2: Crear xml:
fuente
Simplemente agregue la siguiente línea a la etiqueta de actividad en su archivo de manifiesto que debe verse transparente.
fuente
Todas esas respuestas pueden ser confusas, hay una diferencia entre la actividad Transparente y la actividad Ninguna.
Usando esto:
android:theme="@android:style/Theme.Translucent.NoTitleBar"
Hará que la actividad sea transparente pero bloqueará la IU.
Si desea una actividad de interfaz de usuario Ninguna, use esto:
android:theme="@android:style/Theme.NoDisplay"
fuente
Puede eliminar
setContentView(R.layout.mLayout)
de su actividad y establecer el tema comoandroid:theme="@style/AppTheme.Transparent"
. Consulte este enlace para más detalles.fuente