투케이2K

325. (AndroidStudio/android/java) window setStatusBarColor 사용해 상태 바 색상 (color) 변경 실시 본문

Android

325. (AndroidStudio/android/java) window setStatusBarColor 사용해 상태 바 색상 (color) 변경 실시

투케이2K 2022. 8. 22. 11:11
반응형

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : java

 

[colors.xml : 소스 코드]

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#343d46</color>
    <color name="colorPrimaryDark">#343d46</color>
    <color name="colorAccent">#343d46</color>

    <!-- [커스텀 색상 선언 실시] -->
    <color name="colorCustom">#FF00FF</color>
</resources>
 

[java : 소스 코드]

    // TODO [액티비티 생명 주기 상태 체크 메소드]
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // -----------------------------------------
        try {
            // TODO [타이틀바 없애기 : FEATURE_NO_TITLE]
            requestWindowFeature(Window.FEATURE_NO_TITLE);
        }
        catch (Exception e){
            e.printStackTrace();
        }
        // -----------------------------------------
        try {
            // TODO [상태 바 (Status Bar) 색상 변경]
            if (Build.VERSION.SDK_INT >= 21){
                Window window = this.getWindow();
                window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

                // [colors.xml 파일에서 선언한 색상 지정]
                window.setStatusBarColor(this.getResources().getColor(R.color.colorCustom));
                
                // [배경색이 Light 모드 계열의 색상일 경우 추가 설정 >> 상태바 콘텐츠 Dark 표시]
                //window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
            }
        }
        catch (Exception e){
            e.printStackTrace();
        }
        // -----------------------------------------
        // TODO [액티비티 레이아웃 지정 실시]
        setContentView(R.layout.a_intro_layout);
        // -----------------------------------------

    } // [메인 종료]
 

[결과 출력]


반응형
Comments