어떤 UI/UX 가이드라인에 맞추어 설계한 앱의 경우에도
사용자가 임의로 기기의 폰트 사이즈를 변경하거나, 혹은 크거나 작게 사용하고 있는 경우에는
기존의 의도와 다르게 앱의 몇몇 뷰들이 겹치거나 텍스트가 잘려보인다는 등의 현상이 발생하기 마련이다.
이와 같은 경우, constraintLayout으로 구성되어 있는 레이아웃들을 전부 손봐서
기본 폰트 사이즈의 경우 기존 UI/UX 가이드라인에 알맞게 보여지도록 하고, 큰 폰트 사이즈를 사용할 경우
잘려나가는 부분이 없도록 최소한의 조정을 하는 방안이 있었는데,
몇몇 뷰 요소에 엄격하게 들어가있는 width 값들이 있어 손대기가 조금 난해한 부분이 있었다.
그래서 다르게 생각하기로, 기존 가이드라인이 노령 연령대를 고려해 맞추어진 UI/UX라면
(큰 폰트사이즈와 큼직한 버튼이라던지)
의도보다 더 큰 사이즈의 폰트를 사용할 때 앱의 폰트사이즈를 조정하게 만들면 어떨까 하는 생각이 들었다.
서두가 길었는데, 이 방법을 사용하기는 간단하다.
앱의 resources로부터 configuration을 가져와 기기에서 현재 사용중인 폰트 사이즈를 가져올 수 있으며, (float값)
새 Configuration을 생성해 fontScale을 원하는 사이즈로 맞추어 setTo(configuration)을 해주면 된다.
val Config = Configuration()
config.fontScale = 1.2f // 의도한 폰트 설정값
// 사용자의 기기로부터 폰트 사이즈 설정을 가져옴
if (resources.configuration.fontscale > 1.3f) {
resources.configuration.setTo(config)
}
포인트는 뷰를 생성하기 이전에 일찍 적용해야 하는 점.
현재 헛점이라면, 적용 이후에 Toast 메시지가 제대로 출력되지 않는다는 점인데
여기에 관해서 해결점이 나오면은 포스트를 업데이트 할 생각이다.
<참조>
https://stackoverflow.com/questions/16544931/read-font-size-from-settings
'ANDROID > UI - UX' 카테고리의 다른 글
[안드로이드 | 코틀린] 데이터바인딩을 사용할 때 Fragment 내의 View 좌표 가져오기 (0) | 2019.10.28 |
---|---|
[안드로이드] ConstraintLayout 내부에 Fragment 알맞게 배치하기 (0) | 2019.10.15 |
[안드로이드] RecyclerView의 사이즈를 애니메이션과 함께 바꾸기, 아이템이 추가될 때 애니메이션 적용하기 (0) | 2019.08.10 |
[안드로이드] Lottie 3.0.7 적용기 (json 파일 재생 라이브러리) (0) | 2019.08.07 |
[안드로이드] 레이아웃에 실시간 Blur 효과 주기 (가우시안 블러) (0) | 2019.07.27 |