[Android] Font 변경하기 - TypeFace

레퍼런스 링크 : http://goo.gl/ytZUW



Class Overview

The Typeface class specifies the typeface and intrinsic style of a font. This is used in the paint, along with optionally Paint settings like textSize, textSkewX, textScaleX to specify how text appears when drawn (and measured).




 안드로이드에서 제공하는 기본 폰트

안드로이드에서는 기본적으로 세가지의 폰트(font)를 설정할 수 있습니다.

세가지 폰트는 sans, serif, monospace입니다.

아래는 세가지 폰트를 안드로이드 디바이스에서 확인한 결과입니다.




XML Layout에서의 설정

예를들어서 텍스트뷰에서 폰트를 설정하고 싶다면, 아래와 같이 하면됩니다.



XML 레이아웃을 보면, 각 텍스트뷰는 typeface 라는 속성을 가지고 있습니다.
정직하게도 typeface 라는 속성에 폰트 이름을 그대로 넣어주면 적용되는군요.

 폰트  속성값
 sans  android:typeface="sans" 
 serif  android:typeface="serif" 
 monospace  android:typeface="monospace" 



Code에서의 설정

코드에서도 간단하게 설정할 수 있습니다. TextView 클래스에 setTypeface라는 메소드가 있기때문이지요.

텍스트뷰.setTypeface(Typeface.설정할폰트);





 Asset을 통한 추가 폰트의 적용

프로젝트에서 사용한 폰트파일(*.ttf)

MILKYWAY.TTF

PNH_FRIENDNET.TTF

RIX_STAR_N_ME.TTF

 

파일위치 : assets/fonts/


먼저 위의 파일들을 안드로이드 프로젝트의 assets 폴더에 추가해 줍니다.
저는 assets안에 fonts라는 폴더를 만들어 추가해보았습니다.

추가된 폰트를 적용할때에는 아래와 같이 합니다.



Typeface typeFace = Typeface.createFromAsset(getAssets(), "저장되어있는폰트파일"));

이렇게 asset에 저장된 폰트파일을 통해 Typeface를 만들 수 있습니다.

여기서 부터는 위에서 사용했던 코드를 사용해서 폰트를 적용할 수 있습니다.
위에서 아래와 같은 코드를 사용했었습니다.

텍스트뷰.setTypeface(Typeface.설정할폰트);

이 코드를 조금 변경해 아래와 같이 사용하면 됩니다.

Typeface typeFace = Typeface.createFromAsset(getAssets(), "저장되어있는폰트파일"));
텍스트뷰.setTypeface(typeFace);









 스크린샷 및 예제프로젝트

스크린샷
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 


예제 프로젝트
 

20110714_v0.02_CrouteAndroidExample.zip

 




Croute's Android Development Example - 현재 포함된 예제
 - [Android] 리스트뷰 아이템 클릭 이벤트 - ListView Item Click
 - 

[Android] Font 변경하기 - TypeFace




'Android > Font / TypeFace' 카테고리의 다른 글

[Android] Font 변경하기 - TypeFace  (3) 2011.07.14
Posted by croute

댓글을 달아 주세요

  1. 지나오리 2016.12.28 15:46  댓글주소  수정/삭제  댓글쓰기

    오우 좋은 정보 감사합니다 -_-)b

  2. 비기너 2017.03.22 00:14  댓글주소  수정/삭제  댓글쓰기

    TextView Titlename = (TextView) findViewById(R.id.title);
    Typeface typeface = Typeface.createFromAsset(getAssets(), "Midnight Street.ttf";);
    Titlename.setTypeface(typeface);

    이렇게 했는데 여기서 setTypeface 가 빨간줄로 변하네요. 뭐가 문제인걸까요?