android 의 신기능 fontfamily 로 폰트 적용을 쉽게
안드로이드 8.0(api level 26)에서부터 xml을 이용한 폰트 기능이 추가가 되었습니다.
https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html
res/font/ 폴더에 폰트 파일을 넣고
@font/myfont, R.font.myfont
이런식으로 코딩이 가능해졌습니다.
이전에도 안드로이드에서 폰트를 변경할수 있는 기능이 없는건 아니었지만
커스텀뷰를 만들거나, 번거로운방법을 사용했어야 했거든요.
좀 더 편해지고 코드의 가독성도 높아지고, 유지보수 코스트도 낮아졌습니다.
api level 26이 아니더라도
support library 26을 사용해서 api level 14이상부터
해당 기능을 사용하실수 있습니다.
하지만 안드로이드 스튜디오 3.0 이상을 사용해야 한다는건 알아두세요
사용방법도 어렵지 않습니다.
res/font 폴더를 만들고 그 안에 폰트 파일을 넣습니다.
그리고 lobster.xml이라는 폰트패밀리 파일을 만듭니다.(물론 res/font 폴더에)
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/lobster_regular" />
<font
android:fontStyle="italic"
android:fontWeight="400"
android:font="@font/lobster_italic" />
</font-family>
텍스트뷰든 어디든 fontfamily 속성을 사용하면 됩니다.
참 쉽죠?
여기에 한가지더
위의 코드로는 안드로이드 8.0이상에서만 사용하기 때문에 우리는
하위 호환을 위해 support library를 사용해야 합니다.
그렇게 하기 위해서는 fontfamily xml파일을 만들때
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<font android:fontStyle="normal" android:fontWeight="400" android:font="@font/myfont-Regular"
app:fontStyle="normal" app:fontWeight="400" app:font="@font/myfont-Regular"/>
<font android:fontStyle="italic" android:fontWeight="400" android:font="@font/myfont-Italic"
app:fontStyle="italic" app:fontWeight="400" app:font="@font/myfont-Italic" />
</font-family>
app 네임스페이스로 속성값을 한번더 적어주시면 됩니다.