全画面で表示するようにダイアログを設定するにはどうすればよいですか?[閉まっている]


129

私が持っているGridViewコントロールをし、私は私が選択したことを画像がフル画面で表示されるべきでダイアログの実装を作りたいです。

では、ダイアログを全画面モードで表示するにはどうすればよいですか?ありがとう!


2
FULL SCREENを使用したい場合は、画像ファイルのDialogデフォルトACTION_VIEW Intentを使用しないでください。
テートウィルテート

申し訳ありませんが、ほぼ全画面または全画像を意味します
user790156

3
対話する必要がある場合はwillytateへの回答と併せて、テーマでandroid.R.style.Theme_Translucent_NoTitleBar_Fullscreenを使用します
ingsaurabh


3
@MartinPfeffer私も将来のユーザーへの提案がありますが、質問は終了しましたAndrew BarberはAndroidコミュニティからのものではありません。これは、新しいAndroid開発者が常にこれについて知りたい単純な質問です。この質問は、より良い回答と将来のユーザーのために再び公開する必要があります
Abhishek Singh

回答:


228

試す

Dialog dialog=new Dialog(this,android.R.style.Theme.Black.NoTitleBar.Fullscreen)

29
これを機能させるには、android.R.style.Theme_Black_NoTitleBar_Fullscreen
Ben Claytonを

4
Call requires API level 11
Luis A. Florit 2013年

1
@ LuisA.Floritは、Theme_Black_NoTitleBar_Fullscreenを試してください
フェリペカルダス

21
タイトルバー付きのフルスクリーンどうですか?
ヒースボーダーズ

1
これを(を使用してDialogFragment)実行すると、ステータスバーの色がダイアログによって削除されることがわかります。画面全体がダイアログの背景色です。誰かが回避策を知っていますか?ダイアログのウィンドウのstatusBarColorを設定しても、効果はありません。PS:ナビゲーションバーの色も無効になります。
androidguy

83

このリンクに基づいて、正しい答え(私は自分でテストしました)は次のとおりです:

このコードをコンストラクターまたはonCreate()ダイアログのメソッドに配置します。

getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.MATCH_PARENT);

さらに、ダイアログのスタイルを次のように設定します。

<style name="full_screen_dialog">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
</style>

これは、たとえば、コンストラクタを介して実現できます。

public FullScreenDialog(Context context)
{
  super(context, R.style.full_screen_dialog);
  ...

編集:上記のすべての代替案は、スタイルをandroid.R.style.Themeに設定することです。それだけです。


55

私が見つけた最も簡単な方法

Dialog dialog=new Dialog(this,android.R.style.Theme_Black_NoTitleBar_Fullscreen);
        dialog.setContentView(R.layout.frame_help);
        dialog.show();

1
おかげでこれは本当に簡単な方法でした!
CommonSenseCode

1
魅力のように働いた!
リンク88

1
すごい。完全に動作します
Jevgenij Kononov 2017

これは完璧です!受け入れられるソリューションである必要があります。
AmeyaB

背景色を変更できない、まだ黒
Jemshit Iskenderov

42

編集 StackOverflowで回答をバージョン管理できるようになるまでは、これはAndroid 3以下で機能する回答です。古いバージョンのAndroidでは確実に機能するため、現在は機能していないため、反対票を投じないでください。


onCreateDialog()メソッドに1行だけ追加する必要があります。

@Override
protected Dialog onCreateDialog(int id) {
    //all other dialog stuff (which dialog to display)

    //this line is what you need:
    dialog.getWindow().setFlags(LayoutParams.FLAG_FULLSCREEN, LayoutParams.FLAG_FULLSCREEN);

    return dialog;
}

1
FLAG_FULLSCREENを使用できない理由
user790156

2
まあ、それは言うのは難しいです-LayoutParamsをインポートしましたか?レイアウトxmlはfill_parentまたはmatch_parentに設定されていますか?
Caspar Harmer

12
android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN
Derzu

1
エラー:FLAG_FULLSCREEN cannot be resolved or is not a field
Luis A. Florit 2013年

1
この回答が古くなっている可能性があります-Android 4.0以降では機能しない可能性があります。
Caspar Harmer 2013年

34
dialog = new Dialog(getActivity(),android.R.style.Theme_Translucent_NoTitleBar);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.loading_screen);
    Window window = dialog.getWindow();
    WindowManager.LayoutParams wlp = window.getAttributes();

    wlp.gravity = Gravity.CENTER;
    wlp.flags &= ~WindowManager.LayoutParams.FLAG_BLUR_BEHIND;
    window.setAttributes(wlp);
    dialog.getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
    dialog.show();

これを試して。


1
MATCH_PARENTが役に立ちました。
レイ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.