안드로이드 코드 스니펫(Snippets) :: https://blog.wonhada.com/?p=1990

안드로이드 앱에 커스텀 폰트(Custom Fonts)를 적용하는 방법입니다.

1. app/build.gradle의 dependencies에 추가

1
compile 'com.tsengvn:Typekit:1.0.0'

2. 프로젝트폴더\app\src\main\assets에 폰트 파일 추가 (fonts 폴더 만들어서 넣어도 됨)
3. 패키지 루트(MainActivity.java가 있는)에 아래와 같이 CustomStartApp.java 파일 생성
– addNormal, addBold 등은 해당 스타일에 기본적으로 적용되는 것들이고, addCustom1 ~ 9는 레이아웃 xml에서 이용할 수 있는 것들이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package 패키지;

import android.app.Application;

import com.tsengvn.typekit.Typekit;

/**
 * Created by WonHada.com on 2016-04-20.
 */

public class CustomStartApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        Typekit.getInstance()
                .addNormal(Typekit.createFromAsset(this, "폰트.ttf"))
                .addBold(Typekit.createFromAsset(this, "폰트2.ttf"))
                .addCustom1(Typekit.createFromAsset(this, "폰트3.ttf"));// "fonts/폰트.ttf"
    }
}

4. AndroidManifest.xml의 application 노드에 아래와 같이 추가

1
2
<application
       android:name=".CustomStartApp"

5. 액티비티마다 아래 코드 추가 (부모 액티비티 하나 만들어서 상속받으면 편함)

1
2
3
4
@Override
protected void attachBaseContext(Context newBase) {
    super.attachBaseContext(TypekitContextWrapper.wrap(newBase));
}

6. 레이아웃 XML에 Custom1 ~ 9 적용할 경우

1
2
3
4
5
// 루트 노드에 추가
xmlns:app="http://schemas.android.com/apk/res-auto"

// 뷰에 추가
app:font="custom1"

출처: https://github.com/tsengvn/typekit