다운로드 가능한 글꼴 기능을 사용하면 API에서 파일을 앱에 번들로 묶거나 앱 다운로드 글꼴을 허용하는 대신 제공업체 애플리케이션에서 글꼴을 요청할 수 있습니다. 다운로드 가능한 글꼴은 AndroidX Core 라이브러리를 통해 Android API 버전 14 이상을 실행하는 기기에서 사용할 수 있습니다.
다운로드 가능한 글꼴은 다음과 같은 이점을 제공합니다.
앱 크기가 줄어들어 앱 설치 성공률이 증가합니다.
여러 앱에서 제공업체를 통해 동일한 글꼴을 공유할 수 있어 전반적인 시스템 상태 개선. 이렇게 하여 사용자 모바일 데이터, 휴대전화 메모리, 디스크 공간을 절약합니다. 이 모델에서는 필요할 때 네트워크를 통해 글꼴을 가져옵니다.
FontsContract.requestFont() 메서드를 호출하여 글꼴 제공업체에서 글꼴을 검색합니다. 이 메서드는 글꼴이 캐시에 있는지 확인하기 위해 검사를 시작합니다. 글꼴을 로컬에서 사용할 수 없는 경우 글꼴 제공업체를 호출하고 비동기적으로 글꼴을 검색하여 그 결과를 콜백에 전달합니다. 다음 매개변수를 전달합니다.
valrequest=FontRequest("com.example.fontprovider.authority","com.example.fontprovider","my font",certs)valcallback=object:FontsContract.FontRequestCallback(){overridefunonTypefaceRetrieved(typeface:Typeface){// Your code to use the font goes here....}overridefunonTypefaceRequestFailed(reason:Int){// Your code to deal with the failure goes here....}}FontsContract.requestFonts(context,request,handler,null,callback)
자바
FontRequestrequest=newFontRequest("com.example.fontprovider.authority","com.example.fontprovider","my font",certs);FontsContract.FontRequestCallbackcallback=newFontsContract.FontRequestCallback(){@OverridepublicvoidonTypefaceRetrieved(Typefacetypeface){// Your code to use the font goes here....}@OverridepublicvoidonTypefaceRequestFailed(intreason){// Your code to deal with the failure goes here....}};FontsContract.requestFonts(context,request,handler,null,callback);
AndroidX Core는 Android API 버전 14 이상을 실행하는 기기에서 다운로드 가능한 글꼴 기능을 지원합니다. androidx.core.provider 패키지에는 이전 버전과 호환되는 다운로드 가능한 글꼴 기능 지원을 구현하는 FontsContractCompat 및 FontRequest 클래스가 포함되어 있습니다. AndroidX 클래스에는 프레임워크 메서드와 유사한 메서드가 포함되어 있으며 글꼴 다운로드 프로세스는 이 페이지의 다운로드 가능한 글꼴을 프로그래매틱 방식으로 사용 섹션에 설명된 프로세스와 유사합니다.
AndroidX를 사용하여 글꼴을 다운로드하려면 androidx.core.provider 패키지에서 FontsContractCompat 및 FontRequest 클래스를 가져옵니다. FontsContract 및 android.graphics.fonts.FontRequest 프레임워크 클래스가 아닌 이러한 클래스의 인스턴스를 만듭니다.
AndroidX Core 종속 항목 추가
FontsContractCompat 및 FontRequest 클래스를 사용하려면 개발 환경 내에서 앱 프로젝트의 클래스 경로 종속 항목을 수정해야 합니다.
애플리케이션 프로젝트에 AndroidX Core를 추가하려면 앱의 build.gradle 파일에 다음 종속 항목을 추가합니다.
Android 8.0 (API 수준 26) 및 AndroidX Core는 맞춤 글꼴을 XML 레이아웃에서 리소스로 선언하는 더 빠르고 편리한 방법을 제공합니다. 즉, 글꼴을 애셋으로 번들할 필요가 없습니다. 전체 테마에 맞춤 글꼴을 정의하여 굵게, 보통, 연하게 등 여러 두께 및 스타일의 사용성을 촉진할 수 있습니다.
새로운 XML 파일을 res/font 폴더에 만듭니다.
<font-family> 루트 요소를 추가하고 다음 샘플 XML 파일과 같이 글꼴 관련 속성을 설정합니다.
레이아웃 XML 파일에서 @font/font_file_name로 파일을 참조합니다. getFont() 메서드를 사용하여 getFont(R.font.font_file_name)과 같은 파일을 프로그래매틱 방식으로 검색할 수도 있습니다.
매니페스트에서 글꼴 미리 선언
레이아웃 인플레이션 및 리소스 검색은 동기 작업입니다. 기본적으로 글꼴 검색을 위한 첫 번째 시도는 글꼴 제공업체 요청을 트리거하므로 첫 번째 레이아웃 시간이 늘어납니다. 지연을 방지하려면 매니페스트에서 검색이 필요한 글꼴을 미리 선언하면 됩니다.
시스템이 제공업체에서 글꼴을 검색하고 나면 글꼴을 즉시 사용할 수 있습니다. 글꼴 검색이 예상보다 오래 걸리면 시스템에서 가져오기 프로세스를 취소하고 기본 글꼴을 사용합니다.
매니페스트에서 글꼴을 미리 선언하려면 다음 단계를 완료하세요.
res/values/arrays.xml에서 리소스 배열을 만들고 미리 가져오려는 글꼴을 선언합니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-10-22(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-10-22(UTC)"],[],[]]