티스토리 뷰
안드로이드 앱을 만들 때 지정된 폰트를 이용하게 하는 것은 상당히 까다롭습니다.android:fontFamily
를 지원해주긴 하지만 쓸 수 Roboto 폰트 패밀리밖에 적용이 안되고,
TextView의 폰트를 변경시켜주는 Typeface를 이용하면 커스텀 폰트를 적용시킬 수 있지만 다수의 TextView에 적용시키는 데엔 한계가 있습니다(보통 커스텀 TextView를 만들어 사용합니다).
Typekit은 그런 번거로움을 없애주고, 직관적으로 사용할 수 있는 커스텀 폰트 라이브러리입니다.
불친절하게도 API문서도 없고 각 메서드에 대한 설명이 거의 돼있지 않아서, 하나씩 적용해본 뒤 글을 작성하게 됐습니다.
0. 원하는 폰트를 프로젝트폴더\app\src\main\assets 안에 넣어 줍니다(assets 폴더가 없으면 만들고 넣으면 됩니다).
코드에 폰트 파일의 이름을 적어야 하니 잘 기억해두세요.
1. Dependencies에서 Typekit을 프로젝트에 추가합니다.
2. Application을 상속받는 클래스를 만들어 주고, Manifest의 <application>의 android:name이라는 항목에 추가합니다.
/** 앱의 텍스트에 폰트를 적용하기 위한 커스텀 어플리케이션 클래스 */ public class ApplicationBase extends Application { @Override public void onCreate() { super.onCreate(); // 폰트 정의 Typekit.getInstance() .addNormal(Typekit.createFromAsset(this, "NanumBarunGothicLight.otf") .addBold(Typekit.createFromAsset(this, "NanumBarunGothicBold.otf"); } }
<!-- AndroidManifest.xml --> ... 중략 <application android:theme="@style/AppTheme" android:supportsRtl="true" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:allowBackup="true" android:name=".ApplicationBase"> ... 후략
3. 기본 설정이 끝났습니다. 이제 폰트를 적용할 액티비티에 다음 메소드를 추가합니다.
@Override protected void attachBaseContext(Context newBase) { super.attachBaseContext(TypekitContextWrapper.wrap(newBase)); }
* 만약 이 메소드를 액티비티마다 써주는 것이 귀찮다면 커스텀 액티비티로 상속시켜줘도 됩니다.
이렇게 되면 해당 액티비티의 텍스트는 폰트가 적용돼 나옵니다.
Typekit에서 getInstance() 뒤에 오는 add 메서드들은 여러 개가 있는데요, 각 메소드들의 기능과 적용 범위를 간략하게 적으면 이 정도가 있습니다.
// textStyle="normal"일 때 적용됩니다. addNormal(Typekit.createFromAsset(this, "폰트이름")) // textStyle="bold"일 때 적용됩니다. addBold(Typekit.createFromAsset(this, "폰트이름")) // app:font="custom1"일 때 적용됩니다. addCustom1(Typekit.createFromAsset(this, "폰트이름")) // app:font="사용자지정이름"일 때 적용됩니다. add("사용자지정이름", Typekit.createFromAsset(this, "폰트이름"))
addCustom1~9 메서드와 add메서드는 부분적으로 적용할 때 유용하게 쓸 수 있습니다.
다만 폰트를 적용시키기 위해선 TextView의 속성 안에 app:font=""를 넣어 주어야 합니다.
빨간 줄이 나오지만 무시하셔도 됩니다.
결과물입니다.
결과물에 사용된 폰트는 나눔바른고딕 패밀리입니다.
위가 굵음(NanumBarunGothicBold.otf)이고,
아래가 얇음(NanumBarunGothicLight.otf)입니다.
마지막으로,
앱에 폰트를 적용하기 전에 몇 가지 알아두셔야 할 것이 있습니다.
1. 저작권을 조심하세요! 무료 폰트가 100% 무료는 아닙니다.
인터넷에 있는 무료 폰트들은 인쇄나 웹사이트 등에 한해서 무료인 경우가 대다수입니다.
어플리케이션(임베딩)에 대한 언급이 안돼있으면 반드시 문의를 하시고 적용하세요!
2. 왜 이 폰트를 적용해야 하는지를 생각하세요!
안드로이드는 사용자 지정 서체를 사용할 수 있습니다.
만약 폰트를 강제로 바꾸게 된다면 사용자 입장에선 불쾌할 수 있기 때문에,
폰트 적용 옵션을 주거나 꼭 필요한 부분에만 부분적으로 사용하시는 것이 좋습니다.
'Dev > Android' 카테고리의 다른 글
화면 오버레이 감지됨 해결하기 (1) | 2017.04.25 |
---|---|
안드로이드 화면 밝기 조절하기 (0) | 2017.04.19 |
안드로이드 스튜디오에서 한글 깨짐 해결하기 (10) | 2016.12.29 |
EditText의 키보드 모양 변경하기 (0) | 2016.12.23 |
스플래시 스크린(Splash screen) 구현하기 (1) | 2016.12.14 |
- Total
- Today
- Yesterday