안녕하세요 이번 포스트에서는 Android에서 가장 널리 사용되는 두 가지 폰트 적용 방법을 설명하려고 합니다.
이 두 방법은 바로 fontFamily 속성을 이용한 방법과 사용자 정의 Font 클래스를 이용한 방법입니다.
fontFamily 방식은 간단합니다.
res/font 라는 폴더를 만든 후 font 폴더에 자신이 사용할 font를 추가합니다.
주의 폰트 파일의 이름은 반드시 소문자이여야 합니다.
자신이 사용할 폰트를 모두 삽입 한 뒤 font-famliy에 등록합니다.
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
<font android:font="@font/black"/>
<font android:font="@font/bold"/>
<font android:font="@font/extra_bold"/>
<font android:font="@font/extra_light"/>
<font android:font="@font/medium"/>
<font android:font="@font/reqular"/>
<font android:font="@font/semi_bold"/>
<font android:font="@font/thin"/>
</font-family>
이제 TextView를 상속받는 모든 View에서 font 사용이 가능합니다.
주관
장점으로는 사용이 굉장히 간편하고 단순하다는 점이 있고
단점으로는 하나씩 폰트를 지정해주기 때문에 나중에 폰트가 바뀌거나 할 때 일일이 변경해줘야 된다는 단점이 있습니다.
Font 클래스를 이용한 Font 적용 방식은 앞서 설명했던 Font-Family의 단점을 극복할 수 있게 해줍니다.
먼저 Project폴더에서 app -> src -> main 경로에 assets폴더를 추가해줍니다.
이 assets 폴더에는 아까 font-famliy와 동일하게 font 폴더에 사용하실 font를 추가하면 됩니다.
여기까지 셋팅이 완료됫다면 이제 fontClass를 작성해주면 99프로는 완성입니다...!
public class BoldTextView extends AppCompatTextView
{
public BoldTextView(Context context, AttributeSet attrs)
{
super(context, attrs);
setFont(context);
}
public BoldTextView(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
setFont(context);
}
public BoldTextView(Context context)
{
super(context);
setFont(context);
}
public void setFont(Context ct)
{
Typeface tf = Typeface.createFromAsset(ct.getAssets(), "fonts/bold.otf");
setTypeface(tf);
}
}
이렇게 TextView를 상속받는 FontClass를 작성해줍니다.
여기까지 따라오셧다면 이제는 Layout에 사용만 하면 됩니다.
이제 TextView 대신 FontClass를 사용하시면 Font 적용이 끝이 납니다.
주관
FontClass의 장점은 한 프로젝트의 여러가지 변수가 많은대 요구사항을 빨리 처리할 수 잇다는 장점이 있습니다.
단점으로는 TextView,EditText,Button등 font 적용이 필요한 뷰를 모두 만들어줘야되고 font 갯수에 따라 클래스가 계속 늘어나는 단점이 있습니다.
각자 프로젝트의 요구사항에 맞춰서 font-family와 fontClass 중 필요하신 방법으로 적용을 하시면 됩니다.