안드로이드

안드로이드 외부 폰트 적용하기 Typeface.createFromAsset() 메서드 상속!

알통몬_ 2017. 3. 10. 18:47
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 


먼저 적용할 폰트가 필요하겠죠?

폰트는 네이버 폰트나, 배달의 민족 등등 여러 사이트에서 무료 폰트 다운받으시면 됩니다!
확장자는 .ttf 나 .otf 둘 다 상관 없습니다~

이제 적용방법에 대해 알아보겠습니다!

1. app 밑에 assets 라는 폴더를 생성합니다.

2. 원하는 폰트를 위 사진처럼 넣어줍니다!!

3. 해당 폰트를 적용시킬 부모 클래스를 만듭니다!!!
전 BaseActivity라는 클래스를 만들었습니다.
아래 코드를 그대로 가져다쓰시면 됩니다.
만약 폰트를 적용하고자 하는 클래스가 AppCompatActivity 클래스를 상속 받고 있다면
BaseActivity가 AppCompatActivity 클래스를 상속 받게 하면 됩니다.
그리고 "BMHANNA_11yrs_ttf.ttf" 요 부분에 원하는 폰트를 적용해 주시고!!

public class BaseActivity extends Activity { private static Typeface typeface; @Override public void setContentView(int layoutResID) { super.setContentView(layoutResID); if(typeface == null) { typeface = Typeface.createFromAsset(this.getAssets(), "BMHANNA_11yrs_ttf.ttf"); } setGlobalFont(getWindow().getDecorView()); } private void setGlobalFont(View view) { if(view != null) { if(view instanceof ViewGroup) { ViewGroup viewGroup = (ViewGroup)view; int vgCnt = viewGroup.getChildCount(); for(int i = 0; i<vgCnt; i++) { View v = viewGroup.getChildAt(i); if(v instanceof TextView) { ((TextView) v).setTypeface(typeface); } setGlobalFont(v); } } } } }


4. 폰트를 적용하고자 하는 클래스가 BaseAcitivity를 상속받게 하면 됩니다 !!



반응형