투케이2K

437. (android/java) [android 12 / target 31] [유틸 파일] setStateBar : 안드로이드 상태바 색상 변경 (state bar) 본문

Android

437. (android/java) [android 12 / target 31] [유틸 파일] setStateBar : 안드로이드 상태바 색상 변경 (state bar)

투케이2K 2023. 1. 1. 15:56

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

 

    public static void setStateBar(Activity activity) {

        /**
         * // -----------------------------------------
         * [setStateBar 메소드 설명]
         * // -----------------------------------------
         * 1. 안드로이드 상태바 색상 변경
         * // -----------------------------------------
         * 2. 호출 방식 :
         *
         *   C_App.setStateBar(A_Main.this);
         *
         * // -----------------------------------------
         * */


        // [설정 값 확인]
        String setting = "";


        // [로직 처리 실시]
        try {

            if (Build.VERSION.SDK_INT >= 21){
                Window window = activity.getWindow();
                window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
                    window.clearFlags(WindowManager.LayoutParams.TYPE_STATUS_BAR);
                    setting = "[SDK 31 이상] ";
                }
                else {
                    window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
                    setting = "[SDK 30 이하] ";
                }

                // [colors.xml 파일에서 선언한 색상 지정]
                window.setStatusBarColor(activity.getResources().getColor(R.color.purple_500));

                setting = setting + "Android 5.0 이상";
            }
            else {
                setting = "Android 5.0 미만 [Not Working]";
            }

        } catch (Exception e) {
            e.printStackTrace();

            setting = "";
        }


        // [로그 출력 실시]
        ///*
        Log.i("---","---");
        Log.d("//===========//","================================================");
        Log.i("","\n"+"[C_App >> setStateBar() :: 안드로이드 상태바 색상 변경]");
        Log.i("","\n"+"--------------------------------");
        Log.i("","\n"+"[SETTING :: "+String.valueOf(setting)+"]");
        Log.d("//===========//","================================================");
        Log.i("---","---");
        // */
    }

 


 

반응형
Comments