기본으로 적용시킨 스테이터스바 컬러 이외에
특정 플래그먼트 또는 액티비티에서 스테이터스바 컬러를 변경해야할 때가 있다.
롤리팝 이상 버전부터 코드 상에서 컬러를 변경할 수 있는데
변경하기 위해선 styles.xml 에 아래 코드를 넣어 줘야 한다.( 앱 테마가 적용된 부분)
롤리팝 이상부터 동작하기 때문에 values-v23 에 적용시키면 된다.
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
그리고 아래 메소드를 통해 스테이터스바의 컬러를 변경하면 된다.~
//컬러 코드로 변경(예: #373737) public static final void updateStatusBarColor (Activity context, String color) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = context.getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.parseColor(color)); } } //컬러 리소스로 변경(예 : R.color.deep_blue) public static final void updateStatusBarColor (Activity context, int colorId) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = context.getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(ContextCompat.getColor(context, colorId)); } }
'Programming > Android' 카테고리의 다른 글
[Android] 툴바(Toolbar)와 맵뷰(MapView) 사용시 지도가 정상적으로 표시되지 않는 문제 (0) | 2017.05.16 |
---|---|
[Android] Lollipop 버전에서 Support Fragment 화면 갱신이 안될때(ListView, Button 등) (0) | 2017.04.20 |
[Android] LinearLayout 에 View 동적 추가시 weight 주는 방법 (0) | 2017.04.13 |
[Android] 안드로이드 버튼 음영 제거(Remove button shadow on Android) (0) | 2017.04.10 |
[Android] TextSize, 텍스트 사이즈 DIP, DP 코드로 적용 방법 (0) | 2017.03.29 |