ventana studio item emergente custom android alertdialog

item - show dialog box android studio



establecer fondo transparente para alertdialog en Android (6)

El siguiente código cambia el diseño de fondo.

LayoutInflater inflater = MainActivity.this.getLayoutInflater(); View layout = inflater.inflate(R.layout.your_layout, null); final AlertDialog alertDio = new AlertDialog.Builder(MainActivity.this) .setView(layout) .show(); alertDio.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.parseColor("#801b5e20")));

Quiero mostrar el diálogo de alerta con fondo transparente. Mi código de diálogo de alerta es:

AlertDialog.Builder imageDialog = new AlertDialog.Builder(SubProducts.this); LayoutInflater inflater = (LayoutInflater)SubProducts.this.getSystemService(LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.cust_toast_layout,(ViewGroup)findViewById(R.id.linearLayout2)); ImageView image = (ImageView)layout.findViewById(R.id.imageView1); image.setPadding(0, 20, 0, 0); imgLoader.DisplayImage(image_url, loader, image); TextView tprice=(TextView)layout.findViewById(R.id.pricetext); tprice.setText("$ "+pricedouble); TextView tvdprh=(TextView)layout.findViewById(R.id.textView1); tvdprh.setText(prohd); WebView wv=(WebView)layout.findViewById(R.id.webview); Spanned sub=Html.fromHtml(descp); String s = "<html><head><style type=''text/css'' >@font-face {font-family:''myfont'';src: url(''file:///android_asset/fonts/ABeeZee-Regular.ttf'');}body {margin:0px;color:000000;font-family: myfont;" + "text-align: justify;}</style></head><body>" + sub + "</body></html>"; wv.loadDataWithBaseURL("", s, "text/html", "utf-8", null); wv.setVerticalScrollBarEnabled(true); wv.setBackgroundColor(Color.TRANSPARENT); wv.setPadding(5, 25, 5, 0); ImageView imgcartl=(ImageView)layout.findViewById(R.id.imageView2); imgcartl.setBackgroundResource(R.drawable.cartlines); ImageView brobutton=(ImageView)layout.findViewById(R.id.imageView3); brobutton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intentlabl = new Intent(getBaseContext(), Label.class); Bundle b=new Bundle(); b.putString("url", image_urlpdf); b.putBoolean("isDialog", true); intentlabl.putExtras(b); startActivity(intentlabl); } }); ImageView shobutton=(ImageView)layout.findViewById(R.id.imageView4); shobutton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //intent code } }); ImageView addbutton=(ImageView)layout.findViewById(R.id.imageView5); addbutton.setBackgroundResource(R.drawable.addicon); addbutton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub passingid.add(prodid); Product prodobj=new Product(); prodobj.setId(passingid); new LongRunningGetIO4().execute(pricedouble, prodid); } }); imageDialog.setView(layout); imageDialog.create(); imageDialog.show();

Mi imagen de fondo contiene esquinas redondeadas. Pero desafortunadamente, el pop aparece con un fondo blanco rectangular. Cualquier cuerpo por favor me sugiere con una idea. Gracias de antemano.


En lugar de esto:

imageDialog.create(); imageDialog.show();

Podrías intentar hacer algo como esto:

AlertDialog imageDialogAlert = imageDialog.create(); imageDialogAlert.show(); imageDialogAlert.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));


Llama esto,

customDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));

justo antes

customDialog.show();


Una solución más:

Cuando se utiliza Alertdialog.builder : no le getwindow() opción getwindow() . Así podemos hacer que funcione así:

AlertDialog dialog = builderScan.create(); dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); dialog.show();

Y su fondo de AlertDialog será transperente.


define lo que sigue en el archivo styles.xml

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

y pasarlo como argumento al constructor AlertDialog

AlertDialog.Builder imageDialog = new AlertDialog.Builder(SubProducts.this, R.style.CustomDialog);

O programáticamente, a través de la instancia de Dialog puede llamar

myDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT))


protected AlertDialog(Context context) { this(context, com.android.internal.R.style.Theme_Translucent_NoTitleBar_Fullscreen); } public Builder(Context context) { this(context, com.android.internal.R.style.Theme_Translucent_NoTitleBar_Fullscreen); }