2011-09-21 9 views
5

i encargo de un cuadro de diálogo:cómo quitar rectángulo marco del diálogo personalizado

public class CustomizeDialog extends Dialog implements OnClickListener { 
Button close; 
TextView tv; 
public CustomizeDialog(Context context,String Stringcontent) { 
    super(context); 
    requestWindowFeature(Window.FEATURE_NO_TITLE);  
    setContentView(R.layout.custom_diolog_main); 
    tv=(TextView) findViewById(R.id.content); 
    tv.setText(Stringcontent); 
    close = (Button) findViewById(R.id.close); 
    close.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) {  
    if (v == close) 
     dismiss(); 
} 

} 

el xml es

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_height="100dip" 
android:orientation="vertical" 
android:background="@drawable/custom_diolog_bg" 
android:layout_width="250dip"> 
<TextView android:layout_height="wrap_content" 
    android:textColor="#000" 
    android:textStyle="bold" 
    android:textSize="18sp" 
    android:id="@+id/content" 
    android:layout_marginLeft="15dip" 
    android:layout_marginTop="5dip" 
    android:layout_alignParentTop="true" 
    android:layout_width="250dip" 
    android:text=" Custom Dialog "/> 


<Button android:layout_width="70dip" 
    android:layout_marginLeft="80dip" 
    android:background="@drawable/custom_dialog_button_bg" 
    android:layout_alignParentBottom="true" 
    android:layout_height="40dip" android:text="关闭" 
     android:id="@+id/close"></Button> 
</RelativeLayout> 

mi diálogo es vrry bien, pero custom_diolog_bg es una imagen rectángulo redondeado, y cuando Muestro mi diálogo, muestra un marco de sistema antes de mi costumbre, así que utilicé this.getwindow.setBackgroundDrawable (null), luego el marco del sistema parece haber eliminado pero solo las cuatro esquinas no se eliminan, también vemos las cuatro esquinas oscuras, porque utilicé la imagen del rectángulo redondeado. Así que mi pregunta de cómo eliminar todo el Marco para que mi cuadro de diálogo parece muy bien

la imagen es http://i.stack.imgur.com/EG7oz.jpg, por lo que puede ver que hay marco oscuro en el último, cómo eliminarlo? gracias

Respuesta

1

en lugar de llamar

super(context); 

llamada

super(context, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); 

Actualización: Utilice este diseño xml lugar

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="100dip" 
    android:orientation="vertical" 
    android:background="@drawable/custom_diolog_bg" 
    android:layout_width="250dip"> 
    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:orientation="vertical" 
     android:layout_centerInParent="true"> 
     <TextView 
     android:layout_height="wrap_content" 
     android:textColor="#000" 
     android:textStyle="bold" 
     android:textSize="18sp" 
     android:id="@+id/content" 
     android:layout_marginLeft="15dip" 
     android:layout_marginTop="5dip" 
     android:layout_alignParentTop="true" 
     android:layout_width="250dip" 
     android:text=" Custom Dialog " /> 
    <Button 
     android:layout_width="70dip" 
     android:layout_marginLeft="80dip" 
     android:background="@drawable/custom_dialog_button_bg" 
     android:layout_alignParentBottom="true" 
     android:layout_height="40dip" 
     android:text="关闭" 
     android:id="@+id/close"></Button> 
    </LinearLayout> 
</RelativeLayout> 
+0

si utilicé esto, el cuadro de diálogo muestra la ubicación letf -Up no en el medio de la pantalla. – pengwang

+0

Actualicé mi respuesta eché un vistazo a eso – ingsaurabh

+0

Lo usé, pero no puede ser útil, gracias por su respuesta – pengwang

2

diálogo myDialog = nuevo cuadro de diálogo (esto, androide. R.style.Theme_Translucent_NoTitleBar);

+1

si lo usé, el cuadro de diálogo muestra la ubicación letf -Up no en el medio de la pantalla. – pengwang

19

solución que funcionó para mí

<style name="DialogTheme" parent="@android:style/Theme.Dialog"> 
     <item name="android:windowBackground">@android:color/transparent</item>   
</style> 

Dialog dialog = new Dialog(this, R.style.DialogTheme); 
1

Prueba esto a mí me funcionó a las mil maravillas.

ContextThemeWrapper wrapper = new ContextThemeWrapper(this, android.R.style.Theme_Holo); 
final LayoutInflater inflater = (LayoutInflater) wrapper.getSystemService(LAYOUT_INFLATER_SERVICE); 
AlertDialog.Builder builder = new AlertDialog.Builder(wrapper); 
+0

¡Amigo! gracias, eso fue muy inteligente. –

+0

Gracias .... ¡Es bueno saber que ayudó! – Nova

4

Use las siguientes líneas antes de llamar setContentView(): -

getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
getWindow().setBackgroundDrawable(
      new ColorDrawable(android.graphics.Color.TRANSPARENT)); 

funcione a la perfección.

+0

buena respuesta, trabajando .. –

Cuestiones relacionadas