Android 8.0 (API 수준 26) 이상에서는
TextView
- 텍스트 크기 허용
자동으로 확장 또는 축소하여
TextView
의 특성 및 경계 이 설정을 사용하면
동적 콘텐츠를 사용하여 다양한 화면에서 텍스트 크기를 최적화합니다.
지원 라이브러리 26.0은 TextView
자동 크기 조절을 완벽하게 지원합니다.
기능을 사용하지 않습니다.
android.support.v4.widget
패키지에는 TextViewCompat
가 포함되어 있습니다.
클래스를 사용하여 이전 버전과 호환되는 방식으로 특성에 액세스할 수 있습니다.
TextView 자동 크기 조절 설정
프레임워크 또는 지원 라이브러리를 사용하여
프로그래매틱 방식으로 또는 XML에서 TextView
를 사용합니다. XML 속성을 설정하기 위해 Android 스튜디오에서 Properties 창을 사용할 수도 있습니다.
TextView
자동 크기 조절을 설정하는 방법에는 세 가지가 있습니다.
다음 섹션에 설명되어 있습니다.
참고: XML 파일에 자동 크기 조절을 설정하면
'wrap_content' 값을 사용하여 추천됨 대상
다음의 layout_width
또는 layout_height
속성
TextView
입니다. 이렇게 하면
예기치 않은 결과를 얻을 수 있습니다.
기본
기본 설정을 사용하면 TextView
크기 자동 크기 조절이 허용됩니다.
가로축 및 세로축에서 균일하게 사용됩니다.
- 기본 설정을 프로그래매틱 방식으로 정의하려면
<ph type="x-smartling-placeholder"></ph>
setAutoSizeTextTypeWithDefaults(int autoSizeTextType)
메서드를 사용하여 지도 가장자리에 패딩을 추가할 수 있습니다. 사용 중지하려면AUTO_SIZE_TEXT_TYPE_NONE
를 입력하세요. 자동 크기 조절 기능 또는AUTO_SIZE_TEXT_TYPE_UNIFORM
를 가로축과 세로축의 크기를 균일하게 조정합니다. - XML에서 기본 설정을 정의하려면
android
네임스페이스를 사용합니다. 그런 다음autoSizeTextType
속성을 없음으로 설정하거나 uniform).
참고: 균일한 크기 조정의 기본 크기는 minTextSize = 12sp
, maxTextSize = 112sp
및 granularity = 1px.
입니다.
<?xml version="1.0" encoding="utf-8"?> <TextView android:layout_width="match_parent" android:layout_height="200dp" android:autoSizeTextType="uniform" />
지원 라이브러리를 사용하여 기본 설정 정의
- 지원 라이브러리를 통해 프로그래매틱 방식으로 기본 설정을 정의하려면 다음 단계를 따르세요.
호출
<ph type="x-smartling-placeholder"></ph>
TextViewCompat.setAutoSizeTextTypeWithDefaults(TextView textview, int autoSizeTextType)
메서드를 사용하여 축소하도록 요청합니다.TextView
위젯의 인스턴스와 텍스트 유형 중 하나를 제공합니다. 예:TextViewCompat.AUTO_SIZE_TEXT_TYPE_NONE
또는TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM
입니다. - 지원 라이브러리를 통해 XML의 기본 설정을 정의하려면
app
네임스페이스를 적용하고autoSizeTextType
를 설정합니다. 속성을 none 또는 uniform으로 설정합니다.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="200dp" app:autoSizeTextType="uniform" /> </LinearLayout>
세부사항
최소 및 최대 텍스트 크기 범위와 각 단계의 크기를 지정하는 치수를 정의할 수 있습니다. TextView
는 최소 및 최대 크기 속성 사이의 범위에서 균일하게 조정됩니다. 각 증분은
세분성 속성에 설정된 크기입니다.
- 프로그래매틱 방식으로 텍스트 크기 범위 및 치수를 정의하려면
setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit)
메서드를 호출하세요. 최댓값, 최솟값, 세부사항을 입력하세요. 값 및 모든TypedValue
크기 단위입니다. - XML에서 텍스트 크기 범위와 치수를 정의하려면
android
를 사용하세요. 네임스페이스를 다음 속성을 사용합니다. <ph type="x-smartling-placeholder">- </ph>
- 다음과 같이 설정합니다.
autoSizeTextType
속성을 none 또는 uniform으로 설정합니다. none 값 기본값이며 uniform으로 설정하면TextView
배율이 가로 및 세로에서 균일하게 표시됩니다. autoSizeMinTextSize
를 설정합니다.autoSizeMaxTextSize
, 및autoSizeStepGranularity
속성을 사용하여 자동 크기 조절을 위한TextView
입니다.
- 다음과 같이 설정합니다.
<?xml version="1.0" encoding="utf-8"?> <TextView android:layout_width="match_parent" android:layout_height="200dp" android:autoSizeTextType="uniform" android:autoSizeMinTextSize="12sp" android:autoSizeMaxTextSize="100sp" android:autoSizeStepGranularity="2sp" />
지원 라이브러리를 사용하여 세부사항 정의
-
지원 라이브러리에 추가하려면
<ph type="x-smartling-placeholder"></ph>
TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit)
메서드를 사용하여 축소하도록 요청합니다. 최댓값, 최솟값, 세부사항 값 및 모든TypedValue
크기 단위를 포함할 수 있습니다. - 지원을 통해 XML에서 텍스트 크기 범위 및 치수를 정의
app
네임스페이스를 사용하고autoSizeText
,autoSizeMinTextSize
autoSizeMaxTextSize
및 레이아웃 XML 파일의autoSizeStepGranularity
속성
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="200dp" app:autoSizeTextType="uniform" app:autoSizeMinTextSize="12sp" app:autoSizeMaxTextSize="100sp" app:autoSizeStepGranularity="2sp" /> </LinearLayout>
미리 설정된 크기
미리 설정된 크기를 사용하면
TextView
에서 텍스트 자동 크기 조절 시 선택합니다.
-
미리 설정된 크기를 사용하여 프로그래매틱 방식으로
TextView
자동 크기 조절을 설정하려면setAutoSizeTextTypeUniformWithPresetSizes(int[] presetSizes, int unit)
메서드를 호출하세요. 크기 배열 및 크기의TypedValue
치수 단위를 지정합니다. - 미리 설정된 크기를 사용하여 XML에서
TextView
자동 크기 조절을 설정하려면android
네임스페이스를 사용하고 다음 속성을 설정하세요.autoSizeTextType
설정 속성을 none 또는 uniform으로 설정합니다. 없음 기본값이며 uniform으로 설정하면TextView
배율이 가로 및 세로에서 균일하게 표시됩니다.autoSizePresetSizes
속성을 미리 설정된 크기의 배열로 설정합니다. 리소스인 배열에 액세스하려면res/values/arrays.xml
파일에서 배열을 정의하세요.
<resources> <array name="autosize_text_sizes"> <item>10sp</item> <item>12sp</item> <item>20sp</item> <item>40sp</item> <item>100sp</item> </array> </resources>
<?xml version="1.0" encoding="utf-8"?> <TextView android:layout_width="match_parent" android:layout_height="200dp" android:autoSizeTextType="uniform" android:autoSizePresetSizes="@array/autosize_text_sizes" />
지원 라이브러리를 사용하여 미리 설정된 크기 설정
- 미리 설정된 크기를 사용하여
TextView
프로그래매틱 지원 라이브러리를 통해 <ph type="x-smartling-placeholder"></ph>TextViewCompat.setAutoSizeTextTypeUniformWithPresetSizes(TextView textView, int[] presetSizes, int unit)
메서드를 사용하여 축소하도록 요청합니다.TextView
클래스의 인스턴스, 크기 배열 및 모든TypedValue
치수 단위 지정할 수 있습니다. - 미리 설정된 크기를 사용하여
TextView
을 XML로 변환하려면app
네임스페이스를 설정하고autoSizeTextType
및 레이아웃 XML 파일의autoSizePresetSizes
속성.
<resources> <array name="autosize_text_sizes"> <item>10sp</item> <item>12sp</item> <item>20sp</item> <item>40sp</item> <item>100sp</item> </array> </resources>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="200dp" app:autoSizeTextType="uniform" app:autoSizePresetSizes="@array/autosize_text_sizes" /> </LinearLayout>
추가 리소스
동적 소재 사용 시 TextView
자동 크기 조절에 관한 추가 정보
콘텐츠, 시청
Android Jetpack: TextView 자동 크기 조절