Bagaimana cara mengatur dialog untuk ditampilkan di layar penuh? [Tutup]

129

Saya memiliki GridView dan saya ingin membuat implementasi dialog, di mana gambar yang saya pilih harus ditampilkan di layar penuh.

jadi bagaimana saya bisa membuat acara dialog dalam mode layar penuh? Terima kasih!

pengguna790156
sumber
2
Jika Anda ingin menggunakan LAYAR LENGKAP Dialog, mengapa tidak menggunakan default ACTION_VIEW Intentuntuk file gambar?
Will Tate
maaf maksud saya layar hampir penuh atau gambar penuh
user790156
3
Dalam hubungannya dengan jawaban untuk willytate jika Anda harus berdialog maka gunakan android.R.style.Theme_Translucent_NoTitleBar_Fullscreen dalam tema
ingsaurabh
Ini mungkin membantu stackoverflow.com/a/2700683/1118886
Sheraz Ahmad Khilji
3
@ MartinPfeffer saya juga punya saran untuk pengguna masa depan tetapi pertanyaan ditutup Andrew Barber bukan dari komunitas android. Ini benar-benar pertanyaan sederhana. Pengembang Android baru selalu ingin tahu tentang ini. pertanyaan ini harus terbuka lagi untuk jawaban yang lebih baik dan pengguna masa depan
Abhishek Singh

Jawaban:

228

mencoba

Dialog dialog=new Dialog(this,android.R.style.Theme.Black.NoTitleBar.Fullscreen)
Ahmed Salem
sumber
29
Agar ini berhasil, saya harus menggunakan android.R.style.Theme_Black_NoTitleBar_Fullscreen
Ben Clayton
4
Call requires API level 11
Luis A. Florit
1
@ LuisA.Florit coba Theme_Black_NoTitleBar_Fullscreen
Felipe Caldas
21
Bagaimana dengan layar penuh dengan bilah judul?
Heath Borders
1
Ketika saya melakukan ini (menggunakan DialogFragment) saya melihat warna bilah status dimatikan oleh dialog, seluruh layar adalah warna latar belakang dialog. Apakah ada yang tahu solusinya? Saya mencoba mengatur statusBarColor dari jendela dialog, tanpa efek. PS: warna bilah navigasi terbunuh juga.
androidguy
83

berdasarkan tautan ini , jawaban yang benar (yang telah saya uji sendiri) adalah:

letakkan kode ini di konstruktor atau onCreate()metode dialog:

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

selain itu, atur gaya dialog ke:

<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>

ini dapat dicapai melalui konstruktor, misalnya:

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

Sunting: alternatif untuk semua hal di atas adalah mengatur gaya ke android.R.style.Tema dan hanya itu.

pengembang android
sumber
55

Cara termudah yang saya temukan

Dialog dialog=new Dialog(this,android.R.style.Theme_Black_NoTitleBar_Fullscreen);
        dialog.setContentView(R.layout.frame_help);
        dialog.show();
Javier Roberto
sumber
1
terima kasih ini benar-benar cara termudah!
CommonSenseCode
1
Bekerja seperti pesona!
Tautan 88
1
Bagus. Bekerja dengan sempurna
Jevgenij Kononov
Ini sempurna! Harus menjadi solusi yang diterima.
AmeyaB
tidak dapat mengubah warna latar belakang, masih hitam
Jemshit Iskenderov
42

EDIT Hingga saat seperti StackOverflow memungkinkan kita untuk versi jawaban kita, ini adalah jawaban yang berfungsi untuk Android 3 dan di bawah. Tolong jangan downvote karena itu tidak bekerja untuk Anda sekarang, karena pasti bekerja dengan versi Android yang lebih lama.


Anda hanya perlu menambahkan satu baris ke onCreateDialog()metode Anda :

@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;
}
Caspar Harmer
sumber
1
Mengapa saya tidak dapat menggunakan FLAG_FULLSCREEN
user790156
2
Yah, itu sulit dikatakan - Apakah Anda mengimpor LayoutParams? Apakah tata letak xml Anda disetel ke fill_parent atau match_parent?
Caspar Harmer
12
gunakan android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN
Derzu
1
GALAT:FLAG_FULLSCREEN cannot be resolved or is not a field
Luis A. Florit
1
Mungkin saja jawaban ini sudah usang - mungkin tidak berfungsi untuk Android 4.0 dan lebih tinggi.
Caspar Harmer
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();

coba ini.

Prateek Sharma
sumber
1
MATCH_PARENT bekerja untuk saya.
Ray