Soru Özel iletişim kutusunda siyah arka planı kaldır


Resimde gösterildiği gibi siyah arka planını özel iletişim kutusunda kaldırmak istiyorum. Uygulamanın arka planından değil, siyah arka plan iletişim kutusundan olduğundan eminim.

custom dialog with black background around it ;

AlertDialog kodu

public class MyAlertDialog extends AlertDialog { 
    public MyAlertDialog(Context context) 
    {  
        super(context); 
    }  

    public MyAlertDialog(Context context, int theme) 
    { super(context, theme); }
}

Etkinlik kodu

public void showMyDialogOK(Context context, String s, DialogInterface.OnClickListener OkListener) {        
    MyAlertDialog myDialog = new MyAlertDialog(context, R.style.MyDialog2);        
    myDialog.setTitle(null); 
    myDialog.setMessage(s);        
    myDialog.setButton(DialogInterface.BUTTON_POSITIVE ,"Ok", OkListener);
    myDialog.show();    
}

stiller

<?xml version="1.0" encoding="utf-8"?>
    <resources>
        <style name="MyTheme" parent="@android:style/Theme.NoTitleBar.Fullscreen">
            <item name="android:alertDialogStyle">@style/AlertDialog</item>  
        </style>    

        <style name="MyTheme2" parent="@android:style/Theme.Black">
            <item name="android:alertDialogStyle">@style/AlertDialog</item>    
        </style> 

        <style name="AlertDialog">        
            <item name="android:fullDark">@null</item>
            <item name="android:fullBright">@null</item>
            <item name="android:topDark">@drawable/popup_top_dark</item>
            <item name="android:topBright">@null</item>
            <item name="android:centerBright">@null</item>
            <item name="android:centerDark">@drawable/popup_center_dark</item>
            <item name="android:centerMedium">@null</item>
            <item name="android:bottomDark">@null</item>
            <item name="android:bottomBright">@null</item>
            <item name="android:bottomMedium">@drawable/popup_bottom_medium</item>
        </style>

        <style name="MyDialog2" parent="@android:Theme.Dialog">        
            <item name="android:windowBackground">@null</item>    
            <item name="android:buttonStyle">@style/CustomButton</item>  
        </style>    

        <style name="CustomButton" parent="@android:style/Widget.Button">        
            <item name="android:background">@drawable/button_stateful</item>  
        </style>
</resources>

Görüntü kaynakları

popup_center_dark.9.png

popup_center_dark.9.png

popup_bottom_medium.9.png

popup_bottom_medium.9.png

popup_top_dark.9.png

popup_top_dark.9.png


34
2017-11-14 05:56


Menşei


Bu soruyu geçmişte de sordunuz mu? stackoverflow.com/questions/7497449/... - Dipesh Rathod
iki soru aynı değil, soru daha önce sorunu çözmek değil, ama yeni soru getir. - pengwang
merhaba pengwang, özel diyalog için kodu paylaşır mısınız veya arka planını nasıl değiştirdiğini bir diyalog stili diyaloğunu açıklayabilir misiniz - Shruti
Tek bir cevap benim için işe yaramadı. Burada yayınlanan cevap doğru çözümdür. stackoverflow.com/a/25174316/786337 - Tarun


Cevaplar:


public MyAlertDialog(Context context, int theme) extends AlertDialog { 
        super(context, theme);
        getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    }

81
2017-11-14 08:47



Daha basit: getWindow().setBackgroundDrawableResource(android.R.color.transparent); - Brais Gabin
Android 5.0 + üzerinde çalışır, ancak Android 4.2'de çalışmaz - Jacky


Sonehow getWindow().setBackgroundDrawable() benim için çalışmadı AlertDialog. Kullanarak daha kolay bir çözüm buldum diyalog. İşte kodum -

        final Dialog dialog = new Dialog(this);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
        dialog.setContentView(R.layout.popup_window);
        dialog.show();

15
2017-07-07 12:17





Bunu dene:

myDialog.getWindow().clearFlags(LayoutParams.FLAG_DIM_BEHIND);

10
2017-11-18 06:07



Bu benim için çalıştı. Teşekkürler - Mysterious_android


Bu problem için düzinelerce başka çözüm denedikten sonra, benim için çalışılan sonuç şudur:

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

Ve sonra bu temayı kullanmak için iletişimimi ayarlıyor.


5
2017-09-23 06:01





Aşağıdaki gibi xml düzeni oluşturabilir ve iletişim kutusundaki düzen (dialog.xml) :

<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:id="@+id/ScrollView01"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android" style="@style/white_background_bl_aatharv">

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:scrollbars="vertical"
        android:scrollbarAlwaysDrawVerticalTrack="true" android:id="@+id/instructions_view">

        <TextView android:id="@+id/TextView01" android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:textColor="#FFFFFF"
            android:text="text here " />
    </LinearLayout>
</ScrollView>

Burada uyarı iletişiminde düzen ayarlamak için kod:

AlertDialog alert = cndtnsbuilder.create();
                        alert.setView(LayoutInflater.from(
                                currentactivity.this).inflate(
                                R.layout.dialog, null));
                        alert.show();

1
2017-11-14 06:16



evet, bu yöntemleri iknow, ama ben sistem stili yöntemini değiştirmek istiyorum. - pengwang
Benim yöntemimin yanlış olmadığını düşünüyorum, ama idonot neden siyah bir bacgground görüneceğini biliyor - pengwang


Aşağıdaki yöntem benim için çalıştı:

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

1
2018-05-29 11:48



daha fazla açıklama ver .. - Shivaay


// style.xml kod stili:

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

// etkinlikte: stili diyaloğa ayarla:

   Dialog dialogconf = new Dialog(TreeAct.this, R.style.translucentDialog);
            dialogconf.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
                   dialogconf.setContentView(R.layout.dialog_layout);

1
2018-02-04 15:14