caTea 블로그

android status bar color 변경(4.4)버전 이상 본문

android

android status bar color 변경(4.4)버전 이상

ZaRas 2015. 6. 23. 15:41
반응형

xml에 요걸 선언


<View

        android:id="@+id/statusBarBackground"

        android:layout_width="match_parent"

        android:layout_height="20dp"

        android:layout_alignParentTop="true" />



유틸 클래스에 아래 코드 함수 선언


public static void setStatusBarColor(MainActivity context , View statusBar,int color){

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {

           Window w = context.getWindow();

          w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

          //status bar height

          //int actionBarHeight = getActionBarHeight();

          int statusBarHeight = getStatusBarHeight(context);

          //action bar height

           

          statusBar.getLayoutParams().height = statusBarHeight;

          statusBar.setBackgroundColor(color);

    }else{

statusBar.getLayoutParams().height = 0;

    }

}




public static int getStatusBarHeight(MainActivity context) {

    int result = 0;

    int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");

    if (resourceId > 0) {

        result = context.getResources().getDimensionPixelSize(resourceId);

    }

    return result;

}



사용할땐 아래 코드로 사용


Utility.setStatusBarColor(MainActivity.this,findViewById(R.id.statusBarBackground),getResources().getColor(R.color.main_color)); // status bar 투명하게 하기


단점은 이코드로 구현할시 adjustresize? 키보드 설정이 안먹힌다 주의하자

728x90