다운로드 가능한 글꼴 기능을 사용하면 API가 파일을 앱에 번들로 묶거나 앱이 글꼴을 다운로드하도록 하는 등 다운로드 가능한 글꼴은 AndroidX Core 라이브러리를 통해 Android API 버전 14 이상을 실행하는 기기
다운로드 가능한 글꼴은 다음과 같은 이점을 제공합니다.
- 앱 크기가 줄어 앱 설치 성공률이 높아집니다.
- 여러 앱이 동일한 글꼴을 공유할 수 있으므로 전반적인 시스템 상태가 개선됩니다. 제공업체 이렇게 하면 사용자의 모바일 데이터, 휴대전화 메모리, 디스크 공간이 절약됩니다. 이 모델에서 글꼴을 가져옵니다.
다운로드 가능한 글꼴은 어떻게 작동하나요?
글꼴 제공자는 글꼴을 검색하고 로컬로 캐시하여 다른 앱이 사용할 수 있도록 하는 애플리케이션입니다. 글꼴을 요청하고 공유합니다. 다음 그림은 이 프로세스를 보여줍니다.
기본 사항
다운로드 가능한 글꼴 기능은 다음과 같은 방법으로 사용할 수 있습니다. 자세한 내용은 다음 섹션을 참조하세요.
Android 스튜디오 및 Google Play 서비스에서 다운로드 가능한 글꼴 사용
Android 스튜디오 3.0 이상을 사용하여 애플리케이션에서 글꼴을 다운로드하도록 설정할 수 있습니다. 지원 목적 다운로드 가능한 글꼴 기능을 시작하려면 Google Play의 글꼴 제공업체를 제공합니다
<ph type="x-smartling-placeholder">- Layout Editor에서
TextView
를 선택합니다. 그런 다음 속성에서 fontFamily > 다양한 글꼴을 탭합니다. <ph type="x-smartling-placeholder">를 통해 개인정보처리방침을 정의할 수 있습니다. Resources 창이 나타납니다. - Source 메뉴에서 Google Fonts를 선택합니다.
- 글꼴 상자의 '다운로드 가능' 아래에서 글꼴을 선택합니다. 영역입니다.
- Create downloadable font를 선택하고 OK 클릭 <ph type="x-smartling-placeholder">
Android 스튜디오는 글꼴을 렌더링하는 데 필요한 관련 XML 파일을 자동으로 생성합니다. 삽입해야 합니다.
<ph type="x-smartling-placeholder">프로그래매틱 방식으로 다운로드 가능한 글꼴 사용
Android 8.0 (API 수준 26)부터 AndroidX Core는 다운로드 가능한 글꼴을 완벽하게 지원합니다. 대상 AndroidX Core 라이브러리 사용에 관한 자세한 내용은 이 페이지의 다운로드 가능한 글꼴 AndroidX 핵심 라이브러리 섹션을 참고하세요.
다운로드 가능한 글꼴 기능을 프로그래매틱 방식으로 사용하려면 다음 두 가지 주요 클래스와 상호작용하세요.
android.graphics.fonts.FontRequest
: 이 클래스를 사용하면 글꼴 요청을 만들 수 있습니다.FontsContractCompat
: 이 클래스를 사용하면 새로운Typeface
객체 기반: 반환합니다.
앱은 FontsContract
API를 사용하여 글꼴 제공업체에서 글꼴을 가져옵니다. 각
제공자에는 지원하는 Android 버전 및 쿼리 언어에 관한 고유한 제한사항이 있습니다. 대상
Android 버전과 쿼리 형식에 관한 자세한 내용은 제공업체의
문서를 참조하세요.
글꼴을 다운로드하려면 다음 단계를 완료하세요.
android.graphics.fonts.FontRequest
클래스의 인스턴스를 만들어 글꼴을 삭제합니다. 요청을 만들려면 다음 매개변수를 전달합니다. <ph type="x-smartling-placeholder">- </ph>
- 글꼴 제공업체 권한입니다.
- 제공업체의 ID를 확인하기 위한 글꼴 제공업체 패키지
- 글꼴의 문자열 쿼리. 쿼리 형식에 대한 자세한 내용은 해당 글꼴 제공업체의 문서(예: Google 글꼴
- 제공업체의 ID를 확인하기 위한 인증서의 해시 세트 목록입니다. <ph type="x-smartling-placeholder">
Kotlin
val request = FontRequest( "com.example.fontprovider.authority", "com.example.fontprovider", "my font", certs )
자바
FontRequest request = new FontRequest("com.example.fontprovider", "com.example.fontprovider", "my font", certs);
- 다음 인스턴스를 생성합니다.
FontsContract.FontRequestCallback
클래스에 대해 자세히 알아보세요. onTypefaceRetrieved()
메서드를 재정의하여 글꼴 요청이 완료된 것을 표시합니다. 검색된 글꼴을 매개변수로 제공합니다. 이 메서드를 사용하여 필요에 따라 글꼴을 설정할 수 있습니다. 예를 들어, 글꼴의 경우TextView
onTypefaceRequestFailed()
메서드를 재정의하여 글꼴 요청 프로세스의 오류에 관한 정보를 수신합니다. 자세한 내용은 자세한 내용은 오류 코드 상수가 있는지 확인하세요.FontsContract.requestFont()
메서드를 호출하여 글꼴에서 글꼴을 가져옵니다. 제공업체 이 메서드는 글꼴이 캐시에 있는지 확인하기 위한 검사를 시작합니다. 만약 글꼴을 로컬에서 사용할 수 없는 경우 글꼴 제공업체를 호출하고 글꼴을 가져옵니다. 비동기식으로 처리되고 결과를 콜백에 전달합니다. 다음 매개변수를 전달합니다. <ph type="x-smartling-placeholder">- </ph>
- 이
Context
클래스 android.graphics.fonts.FontRequest
클래스의 인스턴스- 글꼴 요청의 결과를 수신하는 콜백
- 스레드에서 글꼴을 가져오는 핸들러 <ph type="x-smartling-placeholder">
- 이
다음 샘플 코드는 다운로드 가능한 글꼴의 전체 프로세스를 보여줍니다.
Kotlin
val request = FontRequest( "com.example.fontprovider.authority", "com.example.fontprovider", "my font", certs ) val callback = object : FontsContract.FontRequestCallback() { override fun onTypefaceRetrieved(typeface: Typeface) { // Your code to use the font goes here. ... } override fun onTypefaceRequestFailed(reason: Int) { // Your code to deal with the failure goes here. ... } } FontsContract.requestFonts(context, request, handler, null, callback)
자바
FontRequest request = new FontRequest("com.example.fontprovider.authority", "com.example.fontprovider", "my font", certs); FontsContract.FontRequestCallback callback = new FontsContract.FontRequestCallback() { @Override public void onTypefaceRetrieved(Typeface typeface) { // Your code to use the font goes here. ... } @Override public void onTypefaceRequestFailed(int reason) { // Your code to deal with the failure goes here. ... } }; FontsContract.requestFonts(context, request, handler, null, callback);
글꼴 제공업체에서 글꼴을 다운로드하는 방법에 관한 자세한 내용은 DownloadableFonts 샘플 앱입니다
AndroidX Core에서 다운로드 가능한 글꼴 사용
AndroidX Core는 Android를 실행하는 기기에서 다운로드 가능한 글꼴 기능을 지원합니다.
API 버전 14 이상 이
androidx.core.provider
패키지에는 구현할 FontsContractCompat
및 FontRequest
클래스가 포함되어 있습니다.
이전 버전과 호환되는 다운로드 가능한 글꼴 기능이 지원된다는 점입니다. AndroidX 클래스에는
글꼴 다운로드 프로세스는
자세한 내용은 이 페이지의
프로그래매틱 방식으로 다운로드 가능한 글꼴 사용을 참조하세요.
AndroidX를 사용하여 글꼴을 다운로드하려면 FontsContractCompat
및
androidx.core.provider
패키지의 FontRequest
클래스 만들기
이러한 클래스의 인스턴스를
FontsContract
및
android.graphics.fonts.FontRequest
프레임워크 클래스
AndroidX 핵심 종속 항목 추가
FontsContractCompat
및 FontRequest
클래스를 사용하려면
개발 환경 내에서 앱 프로젝트의 클래스 경로 종속 항목을 사용할 수 있습니다.
애플리케이션 프로젝트에 AndroidX Core를 추가하려면 다음 종속 항목을 앱의
build.gradle
파일:
Groovy
dependencies { ... implementation "androidx.core:core-ktx:2.2.0" }
Kotlin
dependencies { ... implementation("androidx.core:core-ktx:2.2.0") }
다운로드 가능한 글꼴을 XML의 리소스로 사용
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)
<?xml version="1.0" encoding="utf-8"?> <font-family xmlns:android="http://schemas.android.com/apk/res/android" android:fontProviderAuthority="com.example.fontprovider.authority" android:fontProviderPackage="com.example.fontprovider" android:fontProviderQuery="example font" android:fontProviderCerts="@array/certs"> </font-family>
매니페스트에서 글꼴 사전 선언
레이아웃 인플레이션 및 리소스 검색은 동기 작업입니다. 기본적으로 글꼴을 검색하면 글꼴 제공업체에 대한 요청이 트리거되므로 첫 번째 레이아웃을 있습니다. 지연을 방지하려면 매니페스트에서 검색해야 하는 글꼴을 미리 선언하면 됩니다. 시스템이 제공업체에서 글꼴을 검색하고 나면 글꼴을 즉시 사용할 수 있습니다. If 글꼴 검색이 예상보다 오래 걸리면 시스템에서 가져오기 프로세스를 취소하고 있습니다.
매니페스트에서 글꼴을 미리 선언하려면 다음 단계를 완료하세요.
res/values/arrays.xml
에 리소스 배열을 만들고 생성한 글꼴을 선언합니다. 선택해야 합니다meta-data
태그를 사용하여 매니페스트에서 리소스 배열을 선언합니다.
res/values/arrays.xml <?xml version="1.0" encoding="utf-8"?> <resources> <array name="preloaded_fonts"> <item>@font/font1</item> <item>@font/font2</item> </array> </resources>
<meta-data android:name="preloaded_fonts" android:resource="@array/preloaded_fonts" />
인증서 추가
글꼴 제공자가 사전 설치되어 있지 않거나 AndroidX Core 라이브러리를 사용 중인 경우에는 다음 코드를 선언합니다. 서명한 인증서입니다. 시스템은 인증서를 사용하여 글꼴 제공업체의 ID를 찾습니다.
<ph type="x-smartling-placeholder">인증서를 추가하려면 다음 단계를 따르세요.
- 인증서 세부정보가 있는 문자열 배열을 만듭니다. 인증서에 대한 자세한 내용은 글꼴 제공업체의 문서를 참조하세요.
fontProviderCerts
속성을 배열로 설정합니다.
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="certs"> <item>MIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...</item> </string-array> </resources>
android:fontProviderCerts="@array/certs"<ph type="x-smartling-placeholder">
Compose의 다운로드 가능한 글꼴
시작까지 남은 시간: Compose 1.2-alpha07 Compose 앱에서 Downloadable Fonts API를 사용하여 Google Fonts를 비동기식으로 사용하여 앱에서 사용합니다. 대상 자세한 내용은 Compose 다운로드 가능한 글꼴 문서