Android – 쉽게 커스텀 폰트 사용하기

Calligraphy Library


쉽게 커스텀 폰트를 설정 할 수 있는 라이브 러리이다.

설치하기

메이븐을 이용한 설치

OR

그래들 의존성으로 설치하기

dependencies {
    compile 'uk.co.chrisjenx:calligraphy:2.0.0'
}

폰트 경로는 assets/fonts/에 지정 되어 있어야 한다.

커스텀 속성

“와 같이 사용할 수 있다.

환경 설정

CalligraphyConfig를 Application클래스 안에 사용함으로 써 기본 폰트를 설정할 수 있다.

불행이도 Activity#attachBaseContext(Context)후에 Activity#onCreate(Bundle)이 호출 되기 때문에, 그전에 정의 되어야 한다.

protected void onCreate() {
    super.onCreate();
    CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
                            .setDefaultFontPath("fonts/Roboto-RobotoRegular.ttf")
                            .setFontAttrId(R.attr.fontPath)
                            .build()
            );
    //....
}

Note: CalligraphyConfig를 구지 설정할 필요 없다. 하지만 설정하지 않는다면 기본값은 사용되지 않으면 R.id.fontPath가 사용된다.

Context안에 넣는 방법

Activity Context를 감싸주어라:

@Override
protected void attachBaseContext(Context newBase) {
    super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}

사용법

TextView에 커스텀 폰트 설정하기

<TextView
    android:text="@string/hello_world"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    fontPath="fonts/Roboto-Bold.ttf"/>

쓰다 보니 너무 길어서 링크를 남긴다.