Androidのダイアログボックスから黒い背景を削除するにはどうすればよいですか。写真は問題を示しています。
final Dialog dialog = new Dialog(Screen1.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.themechanger);
Androidのダイアログボックスから黒い背景を削除するにはどうすればよいですか。写真は問題を示しています。
final Dialog dialog = new Dialog(Screen1.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.themechanger);
このコードを追加
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
または、代わりにこれ:
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
<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);
お役に立てれば幸いです。
私はより単純な問題に直面しましたが、私が思いついた解決策は、透明なバッハグラウンドテーマを適用することでした. これらの行をスタイルに書きます
<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"
どういうわけか 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);
楽しみ!!
次のものを使用できます。
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
*/
ダイアログ ポップアップは、デフォルトの黒の背景色またはテーマ カラーを塗りつぶすため、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();
コードでこれを試してください:
getWindow().setBackgroundDrawableResource(android.R.color.transparent);
それは間違いなく機能します...私の場合は...!私の友人
zGnep と同じソリューションですが、xml を使用します。
android:background="@null"
これは、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();
使用できます(オプション)
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
拡張機能を作成することをお勧めします。何かのようなもの
extensions.kt
import android.app.Dialog
fun Dialog.setTransparentBackground() {
window?.setBackgroundDrawableResource(android.R.color.transparent)
}
そして、それを任意のダイアログで使用します
dialog.setTransparentBackground()
プログラミングを楽しんで...
私と一緒に動作するこのコードを使用してください:
Dialog dialog = new Dialog(getActivity(),android.R.style.Theme_Translucent_NoTitleBar);
dialog.show();
クラスを拡張した場合はDialogFrament
、次の方法でテーマを設定できます。
setStyle(DialogFragment.STYLE_NORMAL, R.style.customDialogTheme);
次に、styles.xml ファイルでカスタム テーマを作成します (パラメーターについては @LongLv の回答を参照してください)。
<item name="android:windowCloseOnTouchOutside">true</item>
ユーザーがダイアログの外側に触れた場合にダイアログを閉じたい場合は、忘れずに追加してください。
Window window = d.getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
これが私のやり方です、あなたは試すことができます!
カスタム クラスでカスタム ダイアログを使用している場合は、クラスの透明度を変更する必要があり、onCreate() に次の行を追加します。
getWindow().setBackgroundDrawableResource(android.R.color.transparent);
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>