시스템 폰트 크기 변경시 UI 이슈 대응하기

대부분의 안드로이드 사용자의 경우에는 폰트의 크기를 default 사이즈로 사용해서 특별히 문제가 없지만, 나이가 드신 분들이나 작은 글자의 인식이 불편해서 글자의 크기를 크게(최대로) 해서 보시는 분들도 있다. 이 경우에는 앱에서 이 경우를 대비해서 대응하지 않으면 글자의 위/아래가 잘리는 경우를 볼 수 있다.

우선 폰트의 크기를 설정 앱에서 변경해 보자. 갤럭시를 기준으로 살펴보면 Settings > Display > Font size and style 에서 아래와 같이 폰트의 크기를 변경할 수 있다.

다음으로, 위 화면과 같이 폰트의 크기를 최대로 변경한 경우, 앱에서 어떻게 보이는지 살펴보자. 예로 아래의 화면과 아래의 코드가 이 경우에 해당한다.

그리고, 위 화면을 보여주는 텍스트 뷰의 간략한 코드는 아래와 같다.

<TextView
android:id="@+id/fg_docs_item_detail"
android:layout_width="0dp"
android:layout_height="28dp"
..... />

다음으로, 이 문제를 해결하기 위한 방안을 살펴보자. 간단하게 UI(XML) 코드를 아래와 같이 개선하면 된다. android:layout_height은 글자 크기에 따라서 커질 수 있게 처리(wrap_content)하고, android:minHeight은 기존의 컴포넌트 크기로 고정한다. 그리고, 아래 UI를 포함하는 뷰 그룹(Linear, Relative, Fragme, Constraint)들도 아래와 같이 처리하면 안드로이드 시스템 폰트의 크기를 변경해도 앱 화면의 UI가 잘리지 않게 된다.

<TextView
android:id="@+id/fg_docs_item_detail"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:minHeight="28dp"
..... />

마지막으로, 위 코드를 적용한 앱의 화면을 아래에서 볼 수 있다. 이 화면에서는 글자가 커지긴 했지만, 잘리지 않고 잘 보이는 것을 알 수 있다.