Android/Android관련 이것 저것..

안드로이드 타이틀바와, 스테이터스바 없애기( FULL SCREEN) ,WindowManager

봄석 2019. 2. 4. 13:55

안드로이드 스테이터스바 없애기( FULL SCREEN)



안드로이드앱에서는 아래처럼  상태바와 타이틀바가 있습니다 .


상태바는 최상단에 위치하며, 상태를 나타내는 바입니다.

푸시알림, 소리, 와이파이, 시간등등 안드로이드 폰 자체내의 App상태는 나타냅니다.

타이틀바는 자신이 만든 앱의 제목을 나타내는 바입니다.
색상도 자유롭게 선택 가능하고 버튼도 넣을수 있습니다 .


이러한 타이틀바와 스테이터스바를 없앨려면 어떻게 해야할까요 ?

1) 타이틀바 없애기

styles.xml
<resources>
 
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorDarkBlue</item>
        <item name="colorAccent">@color/colorAccent</item>
        <!-- No Title Bar-->
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
 
    </style>
 
</resources>

\

AppTheme은 기본 스타일입니다 .

여기에 windowActionBar false와 windowNoTitle true를 설정해주게되면 타이틀바가 없어지게 됩니다.


2) 스테이터스바 없애기

activity onCreate()


 override fun onCreate(savedInstanceState: Bundle?) {
        window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)

        super.onCreate(savedInstanceState)

}

스테이터스바를 없앨때는 <item name="windowFullscreen">true</item을 sytles.xml에 추가해주어도 되지만

안되는 버전이 많기 때문에 액티비티 onCreate메소드안에 setContextView 이전에 내용을 추가해줍니다.




윈도우매니저관련 플래그 알아보기

FLAG_NOT_FOCUSABLE : 윈도우에서 키 입력 포커스를 안받음

FLAG_NOT_TOUCHABLE : 터치이벤트를 안받음

FLAG_NOT_TOUCH_MODAL : 윈도우가 포커스가 되도 윈도우 외부의 어떤 포인터 이벤트를 뒤로 보내줌

(여기서 하나 골라서 설정해줘. 이게 잠금후 해제 하니까 렉걸리더라. 이건 onPause에서 super문 안써서 그럴수도..)


FLAG_KEEP_SCREEN_ON : 윈도우가 표시되는 동안 잠금모드로 안잠김 -> 블링크 실행시 하드웨어키를 누르지 않는 이상 안잠김


FLAG_SHOW_WHEN_LOCKED : 잠금시 잠금화면보다 맨 앞에 보임

FLAG_DISMISS_KEYGUARD : 기존 잠금화면 무시

 

FLAG_FULLSCREEN : 상태표시줄 등의 모든 장식이 숨겨짐 (모든 아이콘, 버튼은 항상 보이게 합니다


안드로이드 Developer 레퍼런스 사이트 참고

https://developer.android.com/reference/android/view/WindowManager.LayoutParams