android - trazado - cómo eliminar el marco rectangular del diálogo personalizado
rellenar seleccion photoshop (5)
Diálogo mydialog = nuevo diálogo (this, android.R.style.Theme_Translucent_NoTitleBar);
he personalizado un diálogo:
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 muy bueno, pero custom_diolog_bg es una imagen de rectángulo redondeado, y cuando muestro mi diálogo, muestra un marco de sistema antes de mi costumbre, así que usé 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 sobre cómo eliminar todo el Marco para que mi diálogo parezca Muy bien
la imagen es http://i.stack.imgur.com/EG7oz.jpg , por lo que puede ver que hay un marco oscuro en el último, ¿cómo eliminarlo? gracias
en lugar de llamar
super(context);
llamada
super(context, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
Actualización: utilice este diseño xml en su 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>
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);
Prueba esto funcionó para mí como un encanto.
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);
Use las siguientes líneas antes de llamar a setContentView()
: -
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
getWindow().setBackgroundDrawable(
new ColorDrawable(android.graphics.Color.TRANSPARENT));
funcionará perfectamente