티스토리 뷰
숭실대학교 커뮤니티 SSUmunity 에서 학우들의 스마트한 캠퍼스라이프를 위해
학교 커뮤니티 + 학사관리(유세인트) 기능을 통합한 ' SSULiTE ' 어플리케이션을 개발하고 있다.
<링크 : https://play.google.com/store/apps/details?id=org.ssumunity.ssulite >
ulnamsong (SSUmunity 다재다능 디발자 김태인) 이가 1차 런칭을 위해
깔끔한 화이트와 세련된 블루컬러를 특징으로 디자인을 적용한 UX/UI 의 유저 평가에서
다음과 같은 리뷰가 있었다.
배터리, 시간, 통신 주파수 세기, 알람 등을 표시해주는 화면최상단의 Status Bar가
좌측 Normal 상태와 같이 android:windowLightStatusBar 옵션을 true 로 설정하여
어떤 배경색이 오더라도 테마와 반전되는 색상으로
Status Bar 의 아이콘들이 정상적으로 표시되어야 하는데, 위의 옵션을 API Level 23~ (마쉬멜로)부터 지원하여
우측 상태와 같이 API Level 22 이하의 OS 버전에서는
흰색 배경 컬러를 사용하여 Status Bar 아이콘들이 흰색에 묻혀버리는 상황이 발생해 버렸다.
< Status Bar : API 23 이상 > < Status Bar : API 22 이하 >
2차 스프린트 런칭을 위해 새롭게 변경된 디자인 적용과 함께
이 문제를 해결하고자 동적으로 유저의 OS 버전에 따라 테마를 지원할 수 있도록
변경하려고 API Level 22 이하의 OS 버전 (롤리팝)의 경우, 동적 코드로 windows의 테마를 바꾸려고 하였으나
API Level 22 부터 동적으로 Status Bar 의 색상이 조절가능 하여,
SSULite에서 지원하는 min SDK 18 버전부터 21까지 기존 theme 색상을 사용할 경우 문제를 해결 할 수 없다는 결론이 나왔다.
결국, 코드가 아닌 파일을 추가하는거라 마음에 걸렸지만
values 의 api 버전별 파일을 나누어 theme 를 지원하기로 결정하였다.
기존 theme 의 colorPrimaryDark 색상인 #FFFFFF 를
android:windowLightStatusBar 옵션을 지원하는 API Level 23 미만의 18 ~ 22 버전 까지
Default로 #66B8FF 를 지원 하기로 하였고,
23 ~ 이상 버전 부터 #FFFFFF 을 지원 하기로 하였다.
기존의 values/style.xml 에는 #FFFFFF 으로 작성하였고,
values-v23 폴더를 생성하여 style.xml 에 해당 컬러만 #66B8FF 으로 작성하여주었다.
values-vA 라고 폴더를 만들경우, API Level A 부터 해당 폴더에 있는 코드들이 적용된다.
(API 버전별로, 화면 크기별로 다중 지원 가능하다.)
API 버전에 따른 다중 테마 지원 적용 결과
< Status Bar : API 23 이상 > < Status Bar : API 22 이하 >
* 애초에 구글 디벨로퍼 가이드라인대로 다중 테마 지원시에는 res 폴더를 필요에 따라 나누어 코드를 작성하는게 수고를 더는 듯 하다...
'Android' 카테고리의 다른 글
Mobile App - Remote Config (0) | 2023.01.12 |
---|---|
안드로이드 네트워크 상태 체크 getNetworkInfo(), getActiveNetworkInfo() (0) | 2017.08.09 |
안드로이드 TextView에서 글자수 초과 표시 && singleLine deprecated 대처 방법 (0) | 2017.07.17 |