안드로이드 동적폰트설정

Berry의 개발 블로그·2022년 1월 28일
1

폰트설정

목록 보기
2/2
post-thumbnail

동적폰트변경

이전 포스팅에서 xml상에서 폰트를 변경시키는 방법을 포스팅했다 이번 포스팅에서는 코드상에서 폰트를 설정함으로써 동적으로 폰트를 설정하는 방법을 소개하겠다

이 포스팅을 작성하게 된 이유...

(보통 구글링을 하면 폰트를 변경하는 방법을 치면 xml상에서 정적으로 변경하는 방법이 많이 알려져 있는데 이방법을 찾고 적용하는데 많이 해맸던 기억이 있다... 다들 이글을 봤다면 더이상 구글링하면서 왜 폰트가 적용이 되지 않는데!!! 라면서 화내는일이 없길 바랍니다... :)

코드상에서 폰트변경

핵심코드

Typeface typeFace = Typeface.createFromAsset(getAssets(), "nanumsquare.ttf");
etx1.setTypeface(typeFace);

1.font파일을 assets폴더에 저장하기

일단 가장먼저 font파일을 저장하는 위치가 다르다는 것이 중요하다 왜 이 위치에 저장하는지는 후에 코드를 사용하는데 이유를 설명할 것이다
1) asset폴더 생성하기
초기에는 아래 사진과 같이 assets 폴더가 생성되지 않은 상태이다

아래 사진처럼 실제 assets폴더를 만들기 위해서 res폴더의 경로를 찾아서 열고

상위폴더가 main인데 이아래에 assets 폴더를 생성하면

모양이 특이한 assets 폴더가 추가된것을 확인할 수 있다!

그리고 에셋폴더 하위에 적용하고자하는 폰트파일(~~~.ttf)를 위치시킨다

2.코드상에서 font를 동적으로 변경하기

1) 적용시키고자하는 위젯을 id로 찾아서 가져온다
final EditText etx1 = findViewById(R.id.etx1);
2) 적용하고자하는 폰트의 typeface를 만든다
Typeface typeFace = Typeface.createFromAsset(getAssets(), "nanumsquare.ttf");
3) 해당 typeface를 위젯에 적용시킨다
etx1.setTypeface(typeFace);

과정을 정확하게 따라오다 보면 적용시키고자하는 폰트가 올바르게 변경되는 것을 확인할 수 있다.
하지만 assets폴더에 폰트파일이 없다면 폰트파일을 찾을수 없다는 오류메세지가 발생하면서 실행되지 않는다

마치면서

동적으로 폰트를 변경할일이 있다면 위 방법을 적용시켜서 폰트를 설정하면 된다
앞으로도 폰트에 문제를 겪는 일이 없기를 바라며 포스팅을 마칩니다:)

profile
사고하며 탐구하여 개발한다.

0개의 댓글