시스템 설정과 Spannable

Seok-woo Kim·2023년 3월 7일
0

안드로이드

목록 보기
9/9

1. 서론

최근 유지보수 하던 앱을 리메이크 후 출시 하기로 하였는 데, 앱 크래쉬나 다른 로직상 문제들이야 리메이크니 여러가지로 발생할 수 있으니 그렇다 쳐도 좀 특이한 문제가 있어서 남긴다.

2. 문제점

  • 안드로이드 설정 -> 디스플레이 -> 글자 크기 / 스타일 변경
  • TextView에서 SpannableString으로 글꼴 및 크기 변경한 글자만 설정이 적용되지 않음

3. 해결법

Android Sdk상에서 제공해주는 해결법이라든지 xml 레이아웃 상에서 해결하는 방법은 아니다

1) System Config에서 font scale 구하기 (자바 기준)

  • getResources().getConfiguration().fontScale // fontSacle (기본 1.1로 사료됨)

2) SpannableString에서 setSpan에 적용한 글씨 크기(int 값)과 fontScale로 계산

int fontSize = 55;  // 기본 Scale에서 적용하고자 하는 fontSize값
float fontScale = getResources().getConfiguration().fontScale; // System font scale
fontSize = (int) ((fontSize / 1.1) * fontScale); // 1.1이 기본 Scale이라 계산하고 변경된 Sacle값 적용
profile
안드로이드 개발자 (6년 ~ )

0개의 댓글