2012-01-06 25 views
6

que estoy usando: android:theme="@android:style/Theme.Translucent.NoTitleBar"Theme.Translucent falla en ICS

en combinación con: getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

de conseguir un buen efecto de desenfoque de fondo transparente, emula un estilo de diálogo.

Esto funciona muy bien en 2.3 y hacia abajo, pero es un color sólido (lectura no transparente) en dispositivos que ejecutan ICS/3.0 y superiores. Sé que presentaron un tema de holo y no parece haber un tema específico de Tema.Holo.Translúcido. Cualquier idea sobre cómo obtener un trasfondo translúcido tanto en ICS como en versiones anteriores, no me opongo al uso de temas separados definidos en values-v11.

+0

No parece que esto va a resolver su problema, pero en el caso de que no: [Holo todas partes] (http://android-developers.blogspot.com/2012/01/holo-everywhere.html) – tidbeck

+0

¿Podría especificar qué dispositivos se están ejecutando? ¿Theme.Translucent.NoTitleBar funciona para usted en un proyecto Android recién creado y mínimo? ¿Android: hardwareAccelerated true/false hace la diferencia? ¿Varias combinaciones de atributos en la etiqueta hacen una diferencia (es decir, diferentes modos de compatibilidad)? –

+1

Acabo de hacer un nuevo proyecto con un manifiesto mínimo (generado automáticamente) y agregué el tema. Funciona en mis dispositivos 2.3 pero no en el Galaxy Nexus. android: hardwareAccelerated no parece afectarlo o usa-sdk. – sgarman

Respuesta

3

Uso

dialog.getWindow().setBackgroundDrawable(new ColorDrawable(0)); 

o ampliar Theme.Translucent.NoTitleBar y añadir

<item name="android:windowBackground">@android:color/transparent</item> 
+0

Pude hacer que esto funcionara al usar temas actualizados de ActionbarSherlock. – sgarman

1

Parece que desaprobados borrosidad, al menos con FLAG_BLUR_BEHIND:

público static final int FLAG_BLUR_BEHIND

Esta constante está en desuso. La borrosidad ya no es compatible.

+0

Buen hallazgo, pero incluso si lo elimino, aún no obtengo la transparencia del tema. Entonces, aunque este es un buen consejo, en realidad no resuelve mi problema :( – sgarman