2011-01-21 42 views
12

¿Cómo elimino este efecto "shadowBox" alrededor del cuadro de diálogo que desvanece el fondo?Android: cuadro de diálogo sin sombra alrededor de él

Sé que puedo crear una vista totalmente personalizada pero digamos que quiero que sea simple. Tengo un diseño xml para el diálogo con solo textView y 2 botones y quiero detener el fundido solo para este diálogo.

Respuesta

35

Probar:

dialog.getWindow().clearFlags(LayoutParams.FLAG_DIM_BEHIND); 
+8

Gracias. Funciona. LayoutParams debe ser de android.view.WindowManager –

+0

Tal constante está en desuso para targetSdkVersion = 22 – goRGon

+0

No funciona en Android 4.0+. – Lazy

6

crear style.xml dentro values y poner cosas como esta:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<style name="progress_dialog"> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowTitleStyle">@null</item> 
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> 
    <item name="android:backgroundDimEnabled">false</item> 
    <item name="android:background">#00ffffff</item> 
</style> 

Y al final, poner este estilo a su cuadro de diálogo.

+0

Hm, lo apliqué como style = "@ style/styled_dialog" a linearLayout de mi dialog.xml y nada. – yosh

+0

¿Qué DialoBox estás usando? ¿Progreso uno? o un cuadro de diálogo de alerta? Lo usé mientras tenía un ProgressDialog y especifiqué el estilo al crear una instancia. –

+1

@ Sheikh-Aman Estoy usando el cuadro de diálogo Alerta y no encuentro la manera de agregarle estilo. – yosh

2

aquí dan la clase de muestra de diseño

public void showDialog() { 

    Dialog dialog = new Dialog(this); 
    Window window = dialog.getWindow(); 
    window.setBackgroundDrawableResource(android.R.color.transparent); 
    window.requestFeature(window.FEATURE_NO_TITLE); 

    dialog.setContentView(R.layout.sample); 
    ImageView imggameover, imgplayagain; 
    imggameover = (ImageView) dialog.findViewById(R.id.gameover); 
    imgplayagain = (ImageView) dialog.findViewById(R.id.playagain); 
    imgplayagain.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      startActivity(new Intent(getApplicationContext(), random.class)); 
      onStop(); 
      finish(); 
     } 
    }); 
    dialog.show(); 
} 

de diálogo

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gameoverlayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@android:color/transparent" 
    > 
    <ImageView 
     android:id="@+id/gameover" 
     android:layout_width="225dip" 
     android:layout_height="160dip" 
     android:background="@drawable/gameover" 
     ></ImageView> 
    <ImageView 
     android:id="@+id/playagain" 
     android:layout_width="160dip" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="100dip" 
     android:layout_marginTop="100dip" 
     android:background="@drawable/playagain" 
     ></ImageView> 
</RelativeLayout> 
+0

¡Cosa útil! Pero eso no resuelve el fondo que se desvanece. Quita la ventana de diálogo :) – yosh

4

Utilice simplemente

dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent); 
Cuestiones relacionadas