Setzen Sie den transparenten Hintergrund auf den Alarmdialog in Android

Lesezeit: 4 Minuten

Neehas Benutzeravatar
Neeha

Geben Sie hier die Bildbeschreibung ein

Ich möchte einen Warndialog mit transparentem Hintergrund anzeigen. Mein Code des Alarmdialogs lautet:

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();

Mein Hintergrundbild enthält abgerundete Ecken. Aber leider erscheint Pop mit einem rechteckigen weißen Hintergrund. Jeder Körper bitte schlägt mir eine Idee vor. Vielen Dank im Voraus.

Benutzeravatar von Blackbelt
Schwarzer Gürtel

Definieren Sie, was in folgt styles.xml Datei

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

und übergeben Sie es als Argument an die AlertDialog Konstrukteur

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

Oder programmgesteuert über die Dialog Beispiel, das Sie anrufen können

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

  • Danke, Blackbelt, es hat funktioniert. Aber jetzt wird schwarzer Hintergrund angezeigt. Ich brauche transparent.

    – Neeha

    24. April 2013 um 9:43 Uhr

  • können Sie es mit einem Dialog anstelle eines AlertDialog versuchen?

    – Schwarzer Gürtel

    24. April 2013 um 10:36 Uhr

  • Danke für diese Antwort, Arbeit für mich

    – Sumit Pathak

    8. September 2016 um 7:03 Uhr

  • Danke dir. Es ist toll!

    – Schariful Islam

    19. Juli 2018 um 6:11 Uhr

  • Nun, das funktioniert für mich, während ContextThemeWrapper nicht .. Seltsam, aber danke💗~

    – Meow Cat 2012

    22. Juli 2018 um 13:43 Uhr

Benutzeravatar von Sagar Shah
Sagar Schah

Noch eine Lösung:

Beim Benutzen Alertdialog.builder – Es gibt nicht getwindow() Option darin. Also können wir es so machen:

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

Und Ihr Hintergrund von AlertDialog wird durchsichtig.

  • Dies ist der genaue Weg, es zu tun. Weiter so. Danke dir.

    – Alex K

    22. Dezember 2014 um 20:37 Uhr

Benutzeravatar von zbr
zbr

An Stelle von:

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

du könntest versuchen, so etwas zu tun:

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

  • Es zeigt den Fehler: Die Methode getWindow () ist für den Typ AlertDialog.Builder nicht definiert

    – Neeha

    24. April 2013 um 9:59 Uhr

  • Ja entschuldigung. Bitte schau dir die aktualisierte Antwort an, es sollte jetzt funktionieren.

    – zbr

    24. April 2013 um 11:34 Uhr

Nennen Sie dies,

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

kurz bevor

customDialog.show();

Wenn Sie nur den weißen Hintergrund aus dem Dialoglayout entfernen möchten, fügen Sie einfach Folgendes hinzu:

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

Wenn Sie auch die durchscheinende Farbe des Fensterhintergrunds für den Dialog entfernen möchten, müssen Sie beide Zeilen hinzufügen:

dialog.getWindow().setDimAmount(0f);    
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);

Benutzeravatar von Abhijit Chakra
Abhijit-Chakra

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);
}

Benutzeravatar von Matías Cánepa
Matías Cánepa

Der folgende Code ändert das Hintergrundlayout.

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")));

1438740cookie-checkSetzen Sie den transparenten Hintergrund auf den Alarmdialog in Android

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy