web-dev-qa-db-ja.com

全画面で表示するダイアログを設定する方法は?

私は多くの画像を表示するGridViewを持っており、任意の画像をクリックすると、フルスクリーンダイアログでfull imageが表示されます

その方法を教えてください

ありがとう。

113
user790156

試してみる

Dialog dialog=new Dialog(this,Android.R.style.Theme_Black_NoTitleBar_Fullscreen)
207
Ahmed Salem

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

このコードをコンストラクターまたはダイアログの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に設定することです。

71

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

Dialog dialog=new Dialog(this,Android.R.style.Theme_Black_NoTitleBar_Fullscreen);
        dialog.setContentView(R.layout.frame_help);
        dialog.show();
42
Javier Roberto

EDIT 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;
}
37
Caspar Harmer
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();

これを試して。

30
Prateek Sharma