대화 상자를 전체 화면으로 표시하는 방법은 무엇입니까? [닫은]


129

나는이 의 GridView를 그리고 난 내가 선택했는지 사진을 전체 화면으로 표시해야하는 대화의 구현을 만들고 싶어.

어떻게 대화 상자를 전체 화면 모드로 만들 수 있습니까? 감사!


2
FULL SCREEN을 Dialog사용하려면 ACTION_VIEW Intent이미지 파일 의 기본값 을 사용하지 않는 이유는 무엇입니까?
Will Tate

죄송합니다. 거의 전체 화면 또는 전체 이미지를 의미합니다
user790156

3
대화 해야하는 경우 willytate에 대한 답변과 함께 android.R.style.Theme_Translucent_NoTitleBar_Fullscreen 테마를 사용하십시오
ingsaurabh


3
@MartinPfeffer 나는 또한 미래의 사용자를위한 제안을 가지고 있지만 질문은 앤드류 바버가 안드로이드 커뮤니티가 아닙니다. 이것은 정말로 새로운 안드로이드 개발자가 항상 이것에 대해 궁금한 간단한 질문입니다. 더 나은 답변과 향후 사용자를 위해이 질문을 다시 열어야합니다
Abhishek Singh

답변:


228

시험

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

29
나를위한 일이 들어 나는 android.R.style.Theme_Black_NoTitleBar_Fullscreen 사용했다
벤 클레이튼

4
Call requires API level 11
Luis A. Florit 2018 년

1
@ LuisA.Florit 시도 Theme_Black_NoTitleBar_Fullscreen
Felipe Caldas

21
제목 표시 줄 있는 전체 화면 어떻습니까?
히스 국경

1
이 작업을 수행하면 (을 사용하여 DialogFragment) 대화 상자에서 상태 표시 줄 색상이 죽는 것을 볼 수 있습니다. 전체 화면은 대화 상자의 배경 색상입니다. 누구든지 해결 방법을 알고 있습니까? 대화 상자 창의 statusBarColor를 설정하려고 시도했지만 아무런 효과가 없습니다. 추신 : 네비게이션 바 색상도 죽습니다.
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

이것은 완벽 해요! 허용되는 솔루션이어야합니다.
AmeyaB

배경색은 여전히 ​​검은 색으로 변경되지
않음

42

편집 StackOverflow가 답변을 버전 화 할 수있을 때까지 이것은 Android 3 이하에서 작동하는 답변입니다. 이전 Android 버전과 확실히 작동하기 때문에 현재 작동하지 않기 때문에 다운 투표하지 마십시오.


onCreateDialog()메소드에 한 줄만 추가하면됩니다 .

@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 2016 년

12
android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN 사용
Derzu

1
ERROR :FLAG_FULLSCREEN cannot be resolved or is not a field
루이스 A. Florit

1
이 답변이 오래되었을 수 있습니다-안드로이드 4.0 이상에서는 작동하지 않을 수 있습니다.
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();

이 시도.


1
MATCH_PARENT가 나를 위해 일했습니다.
Ray
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.