오늘 포스팅할 내용은 안드로이드 statusbar에


색상을 넣는 방법이다.


statusbar는 안드로이드 화면 최상단에 존재하며,


앱의 푸쉬나, 배터리 상태, 시간등을 알려주는 역할을 한다.


롤리팝 버전부터 toolbar ( 또는 actionBar )의 색상과 통일감을 주기 위해


statusBar의 색상을 바꿀 수 있도록 API 개편했다.


따라서 머터리얼 디자인을 준수한다면, statusbar 색상을 고려하지 않을 수 없다.


하지만, 5.0 이상 API 에선 바꾸기 수훨하지만, 5.0 미만 API 에서는


statusbar 색상을 바꾸기가 쉽지 않다.


본 포스팅은 롤리팝 이후 API를 이용한 statusbar 색상 넣기와


롤리팝 이전 API를 이용한 statusbar 색상 넣기


두가지를 다룰 예정이다.



아래는 롤리팝 버전 이후 API를 이용한 statusbar 색상 넣기이다. 


롤리팝 보다 낮은 버전은 동작하지 않으니 주의하자.




왼쪽의 이미지를 보면,


각 view 영역에서의 색상태그를 알려준다.


statusbar 색상을 바꾸기 위해


res 디렉토리 안에 있는 


value 디렉토리에 접근후 color.xml에


왼쪽과 같이 태그를 작성한다.


<color name= "colorPrimaryDark">원하는색상</color>


왼쪽에서 보이는 view 영역중 바꾸고 싶은 색상이 있다면,


위와 같이 태그이름과 벨류를 정해주면 된다.
















위의 방법은 xml셋팅으로 statusbar를 바꾸는 방법이다.


아래의 방법은 코드적으로 바꿀 수 있는 방법이다.


액티비티 안이라면 아래와 같이 똑같이 작성하면 되지만, ( window = getWindow() )


액티비티가 아니라면 액티비티 참조값에서 메서드를 호출해야한다. ( window = activity.getWindow() )


Window window = getWindow();


window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUENT_STATUS);


window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUND);


window.setStatusBarColor(자신이 바꾸고 싶은 컬러);


롤리팝 API부터 statusbar는 TRANSLUENT를 적용하면 투명 상태가 아니라, 반투명 상태의 색상이 입혀진다.


따라서 TRANSLUENT 속성을 지우고, statusbar 영역의 view를 칠할 수 있게 셋팅을 한다.


셋팅이후 자신의 원하는 색상을 바꿀 수 있다.



다음 포스팅엔 롤리팝 하위 버전에서 상태바 색상을 바꾸는 방법을 포스팅 하겠다.

 





포스팅이 도움 되셨다면, 커피 한잔 후원해주세요!
더 좋은 포스팅 작성에 큰 힘이 됩니다.

Buy me a coffeeBuy me a coffee

+ Recent posts