안드로이드 해상도 별 폰트 크기 몇

크기를 표시하는 단위

  • 뷰의 폭과 높이는 일반적으로 match_parentwrap_content 값을 지정하는 방식으로 사용함.
    • 단말마다 해상도나 화면의 크기가 달라도 전체 화면을 기준으로 뷰를 배치할 수 있기 때문
    • 뷰의 크기를 픽셀 값으로 지정하면 해상도에 따라 그 크기가 다르게 보이지만, match_parentwrap_content를 사용하면 아주 쉽게 여러 단말의 해상도를 지원할 수 있음.
  • 뷰의 폭과 높이를 정수 값으로 지정하면서도, 픽셀 단위인 px가 아니라 dpsp와 같은 단위를 사용할 경우
    • 해상도가 다른 단말에서도 뷰의 크기를 비슷하게 보이도록 만들 수 있음.
단위 단위 표현 설명
px 픽셀 화면 픽셀의 수
dp 또는 dip 밀도 독립적 픽셀(Density Independent Pixel) 160dpi 화면을 기준으로 한 픽셀
예) 1인치 당 160개의 점이 있는 디스플레이 화면에서 1dp1px와 같음. 1인치 당 320개의 점이 있는 디스플레이 화면에서 1dp2px와 같음.
sp 또는 sip 축척 독립적 픽셀(Scale Independent Pixel) 텍스트 크기를 지정할 때 사용하는 단위
가변 글꼴을 기준으로 한 픽셀로 dp와 유사하나, 글꼴의 설정에 따라 1sp 당 픽셀수가 달라짐.
in 인치 1인치로 된 물리적 길이
mm 밀리미터 1밀리미터로 된 물리적 길이
em 텍스트 크기 글꼴과 상관없이 동일한 텍스트 크기 표시
  • dpdip
    • 해상도에 비례하는 비슷한 크기로 보이게 할 때 사용함.
    • 해상도가 160dpi인 작은 화면에서 20픽셀이던 버튼 크기를 320dpi인 약간 큰 화면에서는 40픽셀의 크기로 보이게 함.
    • 따라서 해상도별로 일일이 크기를 다시 지정하지 않아도 됨.
    • 뷰의 크기 뿐만 아니라 텍스트의 크기를 지정하는 데도 사용됨.
  • spsip
    • 글꼴을 기준으로 한 텍스트 크기를 나타냄.
    • 뷰의 크기에서는 사용되지 않음.
    • 글자를 표시하는 텍스트뷰나 버튼의 텍스트 크기는 sp 단위 사용을 권장함.
    • 사용자가 단말기의 설정에서 글꼴이나 폰트 크기를 바꾸는 경우가 있는데, sp 단위를 사용해야 설정에 맞추어 글자 크기가 바뀜.
  • 뷰에는 dp, 글자 크기에는 sp 단위를 사용하는 것이 좋음.
    • 실제로 앱 화면을 만들 때는 dp 단위를 주로 사용함.
      • 안드로이드 단말은 다양한 화면 크기와 해상도를 가지고 있는데, dp 단위를 사용하면 단말의 해상도에 따라 비율로 픽셀 값이 계산 되므로 대부분의 화면에서 비슷한 크기로 보이게 만들 수 있음.
    • 텍스트의 크기를 지정할 때는 sp를 권장함.
      • 텍스트 크기에 dp를 지정한다고 해서 문제가 생기지는 않지만, sp 단위를 사용해야 단말의 글꼴 설정에 맞추어 표시되는 글자 크기가 바뀔 수 있음.
  • 예) 일반적인 스마트폰 크기 (3~4인치)의 단말과 태블릿 크기(7~10인치)의 단말은 화면 크기와 해상도가 다른데, 이 화면의 중앙에 버튼을 배치하고 화면의 절반 크기 정도로 보여주고 싶을 경우
    • dp 단위를 쓰면 2개 단말에서 비슷한 크기로 보이도록 자동으로 맞춰줌.

⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️

  • 플랫폼
  • Android 스튜디오
  • Google Play
  • Jetpack
  • Kotlin
  • 문서
    • 개요
    • 가이드
    • 참조
    • 샘플
    • 디자인 및 품질
  • 게임

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Android 8.0(API 수준 26) 이상을 사용하면 TextView의 특성 및 경계에 따라 텍스트 크기를 자동으로 확장하거나 축소하여 레이아웃을 채우도록 TextView에 지시할 수 있습니다. 이 설정을 사용하면 동적 콘텐츠가 있는 다양한 화면의 텍스트 크기를 더 쉽게 최적화할 수 있습니다.

지원 라이브러리 26.0은 Android 8.0(API 수준 26) 이전의 Android 버전을 실행하는 기기에서 TextView 자동 크기 조절 기능을 완벽하게 지원합니다. 라이브러리는 Android 4.0(API 수준 14) 이상을 지원합니다. android.support.v4.widget 패키지에는 TextViewCompat 클래스가 포함되어 있어 이전 버전과 호환되는 방식으로 기능에 액세스할 수 있습니다.

TextView 자동 크기 조절 설정

프레임워크 또는 지원 라이브러리를 사용하여 프로그래매틱 방식으로 또는 XML에서 TextView 자동 크기 조절을 설정할 수 있습니다. XML 속성을 설정하기 위해 Android 스튜디오에서 Properties 창을 사용할 수도 있습니다.

다음과 같은 세 가지 방법으로 TextView 자동 크기 조절을 설정할 수 있습니다.

  • 기본
  • 세부사항
  • 미리 설정된 크기

참고: XML 파일에서 자동 크기 조절을 설정했다면 TextViewlayout_width 또는 layout_height 속성에 'wrap_content' 값을 사용하지 않는 것이 좋습니다. 예기치 않은 결과가 발생할 수 있습니다.

기본

기본 설정을 사용하면 TextView 자동 크기 조절이 가로축 및 세로축에서 균일하게 조정됩니다.

  • 프로그래매틱 방식으로 기본 설정을 정의하려면 setAutoSizeTextTypeWithDefaults(int autoSizeTextType) 메서드를 호출하세요. 자동 크기 조절 기능을 끄려면 AUTO_SIZE_TEXT_TYPE_NONE을 지정하고 가로축 및 세로축을 균일하게 조정하려면 AUTO_SIZE_TEXT_TYPE_UNIFORM을 지정하세요.
  • 참고: 균일한 크기 조정의 기본 크기는 minTextSize = 12sp, maxTextSize = 112spgranularity = 1px.입니다.

  • XML에서 기본 설정을 정의하려면 android 네임스페이스를 사용하고 autoSizeTextType 속성을 none 또는 uniform으로 설정하세요.
  • <?xml version="1.0" encoding="utf-8"?>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:autoSizeTextType="uniform" />
    

지원 라이브러리 사용

  • 지원 라이브러리를 통해 프로그래매틱 방식으로 기본 설정을 정의하려면 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 네임스페이스를 사용하고 다음 속성을 설정하세요.
    • autoSizeText 속성을 none 또는 uniform으로 설정합니다. none은 기본값이며 uniform을 지정하면 TextView가 가로축 및 세로축에서 균일하게 조정됩니다.
    • autoSizeMinTextSize, autoSizeMaxTextSizeautoSizeStepGranularity 속성을 설정하여 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" />
    

지원 라이브러리 사용

  • 지원 라이브러리를 통해 프로그래매틱 방식으로 텍스트 크기 범위 및 치수를 정의하려면 TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit) 메서드를 호출하세요. 최댓값, 최솟값, 세부사항 값 및 TypedValue 치수 단위를 지정합니다.
  • 지원 라이브러리를 통해 XML에서 텍스트 크기 범위 및 치수를 정의하려면 app 네임스페이스를 사용하고 레이아웃 XML 파일에서 autoSizeText, autoSizeMinTextSize, autoSizeMaxTextSizeautoSizeStepGranularity 속성을 설정하세요.
  • <?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 네임스페이스를 사용하고 다음 속성을 설정하세요.
    • autoSizeText 속성을 none 또는 uniform으로 설정합니다. none은 기본값이며 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 자동 크기 조절을 설정하려면 TextViewCompat.setAutoSizeTextTypeUniformWithPresetSizes(TextView textView, int[] presetSizes, int unit) 메서드를 호출하세요. TextView 클래스의 인스턴스, 크기 배열 및 크기의 TypedValue 치수 단위를 지정합니다.
  • 미리 설정된 크기를 사용하여 지원 라이브러리를 통해 XML에서 TextView 자동 크기 조절을 설정하려면 app 네임스페이스를 사용하고 레이아웃 XML 파일에서 autoSizeTextautoSizePresetSizes 속성을 설정하세요.
  • <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 자동 크기 조절에 관한 자세한 내용은 TextView 자동 크기 조절을 시청하세요.

Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Last updated 2021-05-03 UTC.

[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"필요한 정보가 없음" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"너무 복잡함/단계 수가 너무 많음" },{ "type": "thumb-down", "id": "outOfDate", "label":"오래됨" },{ "type": "thumb-down", "id": "translationIssue", "label":"번역 문제" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"샘플/코드 문제" },{ "type": "thumb-down", "id": "otherDown", "label":"기타" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"이해하기 쉬움" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"문제가 해결됨" },{ "type": "thumb-up", "id": "otherUp", "label":"기타" }]