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"/>

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

OS X – 간단한 명령어로 폰트를 초기화 하기

맥에 너무 많은 폰트를 설치하게 되면 성능 저하 및 여러 가지 문제가 발생할 수 있다.
그리고 또한 일일이 관리하기 힘들어 가끔은 어떤 폰트를 설치 했는지 모를 때다. 이 문제를 해결하기 위해 간단한 명령어로 처리할 수 있다.

터미널에서 아래의 명령어를 입력해주자.

fontrestore default

명령어 수행 후 아래와 같은 폰트들이 생성된다.
* /System/Library/Fonts (Removed)
* /Library/Fonts (Removed)
* ~/Library/Fonts (Removed)

Ref