286

Androidのダイアログボックスから黒い背景を削除するにはどうすればよいですか。写真は問題を示しています。

ここに画像の説明を入力してください

final Dialog dialog = new Dialog(Screen1.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.themechanger); 
4

24 に答える 24

778

このコードを追加

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

または、代わりにこれ:

dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
于 2012-05-29T08:01:49.480 に答える
100
<style name="NewDialog">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowTitleStyle">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
    <item name="android:backgroundDimEnabled">false</item>
    <item name="android:background">@android:color/transparent</item>
</style>

ジャバで使う

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

お役に立てれば幸いです。

于 2013-09-19T04:38:04.073 に答える
35

私はより単純な問題に直面しましたが、私が思いついた解決策は、透明なバッハグラウンドテーマを適用することでした. これらの行をスタイルに書きます

    <item name="android:windowBackground">@drawable/blue_searchbuttonpopupbackground</item>
</style>
<style name="Theme.Transparent" parent="android:Theme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>

そして、追加します

android:theme="@style/Theme.Transparent"

ダイアログ アクティビティのブロック内のメイン マニフェスト ファイル内。

さらに、ダイアログ アクティビティの XML セットに

 android:background= "#00000000"
于 2012-12-08T09:41:00.837 に答える
17

どういうわけか Zacharias ソリューションがうまくいかなかったので、以下のテーマを使用してこの問題を解決しました...

<style name="DialogCustomTheme" parent="android:Theme.Holo.Dialog.NoActionBar">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:colorBackgroundCacheHint">@null</item>
</style>

以下のように、このテーマをダイアログに設定できます

final Dialog dialog = new Dialog(this, R.style.DialogCustomTheme); 

楽しみ!!

于 2013-05-13T07:08:00.193 に答える
12

次のものを使用できます。

setBackgroundDrawable(null);

method.そして、以下はドキュメントです:

  /**
    * Set the background to a given Drawable, or remove the background. If the
    * background has padding, this View's padding is set to the background's
    * padding. However, when a background is removed, this View's padding isn't
    * touched. If setting the padding is desired, please use
    * {@link #setPadding(int, int, int, int)}.
    *
    * @param d The Drawable to use as the background, or null to remove the
    *        background
    */
于 2012-05-29T08:01:52.003 に答える
12

ダイアログ ポップアップは、デフォルトの黒の背景色またはテーマ カラーを塗りつぶすため、TRANSPARENT背景をダイアログに設定する必要があります。以下のコードを試してください:-

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.splash);
dialog.show();
于 2013-10-04T07:18:13.733 に答える
4

コードでこれを試してください:

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

それは間違いなく機能します...私の場合は...!私の友人

于 2013-07-02T13:53:56.917 に答える
3

zGnep と同じソリューションですが、xml を使用します。

android:background="@null"
于 2012-05-29T08:08:13.653 に答える
3

これは、AlertDialog で半透明性を実現するために私が行ったことです。

カスタム スタイルを作成しました:

<style name="TranslucentDialog" parent="@android:style/Theme.DeviceDefault.Dialog.Alert">
    <item name="android:colorBackground">#32FFFFFF</item>
</style>

次に、次のようにダイアログを作成します。

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.TranslucentDialog);
AlertDialog dialog = builder.create();
于 2016-03-30T14:18:55.473 に答える
2

使用できます(オプション)

dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)

拡張機能を作成することをお勧めします。何かのようなもの extensions.kt

import android.app.Dialog

fun Dialog.setTransparentBackground() {
    window?.setBackgroundDrawableResource(android.R.color.transparent)
}

そして、それを任意のダイアログで使用します

dialog.setTransparentBackground()

プログラミングを楽しんで...

于 2021-09-28T16:54:36.437 に答える
2

私と一緒に動作するこのコードを使用してください:

    Dialog dialog = new Dialog(getActivity(),android.R.style.Theme_Translucent_NoTitleBar);
    dialog.show();
于 2014-09-22T11:56:35.330 に答える
1

クラスを拡張した場合はDialogFrament、次の方法でテーマを設定できます。

setStyle(DialogFragment.STYLE_NORMAL, R.style.customDialogTheme);

次に、styles.xml ファイルでカスタム テーマを作成します (パラメーターについては @LongLv の回答を参照してください)。

<item name="android:windowCloseOnTouchOutside">true</item>ユーザーがダイアログの外側に触れた場合にダイアログを閉じたい場合は、忘れずに追加してください。

于 2018-04-10T20:40:28.430 に答える
0
Window window = d.getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

これが私のやり方です、あなたは試すことができます!

于 2012-05-29T08:15:10.337 に答える
0

カスタム クラスでカスタム ダイアログを使用している場合は、クラスの透明度を変更する必要があり、onCreate() に次の行を追加します。

getWindow().setBackgroundDrawableResource(android.R.color.transparent);
于 2018-11-05T08:28:43.907 に答える
0

R.layout.themechangerデフォルトでは、ダイアログにはデフォルトの背景色があるため、背景色がないことを確認してください。

また、追加する必要がありますdialog.getWindow().setBackgroundDrawable(newColorDrawable(Color.TRANSPARENT));

そして最後に

<style name="TransparentDialog">
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowTitleStyle">@null</item>
</style>
于 2020-03-13T01:00:22.137 に答える