Android TextView 자동 크기 조절하는 방법

TextView 자동 크기 조절 ?

스마트폰마다 레이아웃이 달라지기 때문에 하드코딩으로 글씨 크기를 설정하면 큰 화면에서도 그 사이즈를 유지하기에 잘 안보일 수 있다. 또한, 여러 글씨 크기의 사이즈를 만들고 서비스를 만들어도 유연성있게 대처하기에는 한계가 명확하다.

그렇기에 TextView 의 자동 크기 조절을 통해 화면에 따라 유연하게 변한다면 서비스 이용자에게 편리함을 제공할 수 있을 것이다.

TextView 자동 크기 조절

아래의 코드로 예를 들어보자

//xml 방식
<TextView
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:autoSizeTextType="uniform"

    android:autoSizeMinTextSize="12sp"
    android:autoSizeMaxTextSize="100sp"
    android:autoSizeStepGranularity="2sp" />

//코딩 방식
TextViewCompat.setAutoSizeTextTypeWithDefaults(TextView textview, int autoSizeTextType)
//autoSizeTextType - TextViewCompat.AUTO_SIZE_TEXT_TYPE_NONE 또는 TextViewCompatAUTO_SIZE_TEXT_TYPE_UNIFORM

미리 설정된 크기를 불러와서 사용할 수 있다.

//xml 방식
<resources>
    <array name="autosize_text_sizes">
        <item>12sp</item>
        <item>14sp</item>
        <item>16sp</item>
        <item>20sp</item>
        <item>30sp</item>
    </array>
</resources>

<TextView
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:autoSizeTextType="uniform"
    android:autoSizePresetSizes="@array/autosize_text_sizes" />

참고자료

TextView 자동 크기 조절은 API 26 이상의 버전을 사용 지원 라이브러리 26.0은 이전의 안드로이드 버전을 실행하는 기기에서 크기 조절 기능을 제공함(API 14.0 이상) android.support.widget 패키지의 TextViewCompat 클래스가 포함되어 있어서 이전의 방식과 호환됨

결론



Related Posts