Como definir o diálogo para exibição em tela cheia? [fechadas]


129

Eu tenho um GridView e quero fazer uma implementação de uma caixa de diálogo, na qual a imagem que eu selecionei deve ser exibida em tela cheia.

então, como posso exibir a caixa de diálogo em modo de tela cheia? obrigado!


2
Se você deseja usar uma tela cheia Dialog, por que não usar apenas o padrão ACTION_VIEW Intentpara arquivos de imagem?
Will Tate

desculpe, eu quero dizer a tela quase cheia ou imagem completa
user790156

3
Em conjunto com a resposta para willytate se tiver de diálogo, em seguida, usar android.R.style.Theme_Translucent_NoTitleBar_Fullscreen no tema
ingsaurabh


3
@MartinPfeffer Eu também tenho uma sugestão para o usuário futuro, mas a pergunta encerrada Andrew Barber não é da comunidade Android. Esta é realmente uma pergunta simples. Novos desenvolvedores Android sempre curiosos sobre isso. esta pergunta deve ser aberta novamente para obter melhores respostas e futuros usuários
Abhishek Singh

Respostas:


228

experimentar

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

29
Para que isso funcione para mim eu tive que usar android.R.style.Theme_Black_NoTitleBar_Fullscreen
Ben Clayton

4
Call requires API level 11
Luis A. Florit

1
@ LuisA.Florit tentar Theme_Black_NoTitleBar_Fullscreen
Felipe Caldas

21
E a tela cheia com uma barra de título?
Heath Borders

1
Quando faço isso (usando DialogFragment), vejo que a cor da barra de status é eliminada pela caixa de diálogo, a tela inteira é a cor de fundo da caixa de diálogo. Alguém sabe de uma solução alternativa? Tentei definir o statusBarColor da janela da caixa de diálogo, sem efeito. PS: a cor da barra de navegação também é eliminada.
androidguy

83

Com base neste link , a resposta correta (que eu mesmo testei) é:

coloque este código no construtor ou no onCreate()método da caixa de diálogo:

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

além disso, defina o estilo da caixa de diálogo para:

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

isso pode ser alcançado através do construtor, por exemplo:

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

EDIT: uma alternativa para todas as opções acima seria definir o estilo para android.R.style.Theme e é isso.


55

A maneira mais fácil que encontrei

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

1
graças a esta foi realmente a maneira mais fácil!
CommonSenseCode

1
Trabalhou como um encanto!
Link 88

1
Ótimo. Funciona perfeitamente
Jevgenij Kononov

Isto é perfeito! Deve ser a solução aceita.
AmeyaB

mudam de cor de fundo cant, ainda preto
Jemshit Iskenderov

42

EDITAR Até que o StackOverflow permita a versão de nossas respostas, esta é uma resposta que funciona no Android 3 e abaixo. Por favor, não diminua o voto porque não está funcionando para você agora, porque definitivamente funciona com versões mais antigas do Android.


Você só precisa adicionar uma linha ao seu onCreateDialog()método:

@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
Por que não consigo usar FLAG_FULLSCREEN
user790156

2
Bem, isso é difícil de dizer - Você importou LayoutParams? O XML do seu layout está definido como fill_parent ou match_parent?
Caspar Harmer

12
use android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN
Derzu

1
Erro:FLAG_FULLSCREEN cannot be resolved or is not a field
Luis A. Florit

1
É possível que esta resposta esteja desatualizada - pode não funcionar para o Android 4.0 ou superior.
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();

tente isso.


1
MATCH_PARENT trabalhou para mim.
Raio
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.