154

GridViewがあり、選択した画像を全画面表示するダイアログを実装したいと考えています。

では、ダイアログをフルスクリーンモードで表示するにはどうすればよいですか? ありがとう!

4

5 に答える 5

262

試す

Dialog dialog=new Dialog(this,android.R.style.Theme_Black_NoTitleBar_Fullscreen)
于 2011-09-29T12:16:07.800 に答える
104

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

このコードをコンストラクターまたは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.ThemeOverlayことです。それだけです。

EDIT2: マテリアル ライブラリをサポートするには、Gradle の依存関係を app(module)build.gradleファイルに追加します

implementation "com.google.android.material:material:$material_version"

次に、ダイアログのテーマをR.style.ThemeOverlay_MaterialComponents

于 2012-06-03T09:49:15.537 に答える
46

編集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;
}
于 2011-06-13T10:50:04.110 に答える