Tistory View
안드로이드의 Paint는 기본적으로 외부폰트파일을 이용할 수가 있다. 앱에 폰트파일을 포함하여 이를 불러올 수 있게 이미 함수를 지원해준다. 이 함수는 Typeface class내에 있다. 함수의 원형은 다음과 같다.
public static Typeface createFromAsset( AssetManager mgr, String path );
함수 원형에서 보이듯, 외부서체를 이용하려면, Assset에 외부서체 파일을 넣어 두어야 한다. 지원하는 외부서체는 OTF와 TTF파일을 지원한다.
우선 Asset폴더에 사용할 서체를 넣고, 외부서체를 Typeface 인스턴스로 만든 후, Paint에 넣어주면 된다.
Asset폴더에 서체파일 넣기
Asset폴더를 만들지 않았거나 없다면 다음과 같이 프로젝트화면에서 오른쪽 버튼을 눌러 Asset폴더를 만든다.
이제 만들어진 Asset폴더에 폰트파일을 넣는다.
서체파일 불러와 사용하기
서체파일을 넣었으면 다음의 코드를 사용하여 서체를 사용할 수 있다.
AssetManager am = this.getContext().getAssets();
Paint paint = new Paint( Paint.ANTI_ALIAS_FLAG );
paint.setTypeface( Typeface.createFromAsset( am, "NanumBrush.ttf" ) );
paint.setTextSize( 200.0f );
canvas.drawText("SAMPLE TEXT",10,paint.getFontSpacing(), paint );
asset파일의 경로를 지정할 경우 맨앞에 "/"가 없는 점을 주의해야 한다. 또한, 되도록이면 서체파일을 저장할 때, 혹시나 문제가 될 수 있으니, 한글을 사용하지 말고 영문을 사용하기를 권장한다.
BOLD / ITALIC
볼드나 이탤릭을 이용하려면 다음의 코드로 처리 할 수 있다.
AssetManager am = this.getContext().getAssets();
Typeface plain = Typeface.createFromAsset( am, "NanumBrush.ttf" );
Typeface bold = Typeface.create( plain, Typeface.BOLD );
Paint paint = new Paint( Paint.ANTI_ALIAS_FLAG );
paint.setTypeface( bold );
paint.setTextSize( 200.0f );
canvas.drawText("SAMPLE TEXT",10,paint.getFontSpacing(), paint );
위의 코드에서 bold용 Typeface 객체를 만드는 코드에서 Typeface.BOLD위치에 다음의 값들로 bold/italic을 지정해 주면된다.
Typeface.NORMAL Typeface.BOLD Typeface.ITALIC Typeface.BOLD_ITALIC
파일에서 불러오기
추가로 Asset폴더가 아닌 외부파일에서 불러온다면, Typeface.createFromFile() 함수를 이용하면 된다. 주로 앱의 cache나 files폴더에서 가지고 올 경우 이용하면 된다.
폰트라이센스 확인
여담으로 서체파일이 앱에 들어가 배포가 되는 형태이므로 서체의 라이센스를 확인한 후 배포되어야 한다.
'Android Develop > Font' 카테고리의 다른 글
안드로이드 폰트 아웃라인을 Path로 만들기 (0) | 2019.09.06 |
---|---|
안드로이드 Antialiasing / SubPixel Rendering (0) | 2019.09.01 |
안드로이드 Paint getTextBounds와 정렬 (2) | 2019.08.31 |
안드로이드 Canvas Paint 여러줄 출력 StaticLayout (0) | 2019.08.30 |
안드로이드 FontMetrics (0) | 2019.08.25 |
- Total
- Today
- Yesterday
- 애드센스
- 에어콘
- Android
- 전기세
- 재테크
- 재태크
- 에어컨
- 안드로이드
- OpenGLes
- 적금
- 사용료
- 아끼는 법
- 티스토리
- 예금
- OpenGL ES
- choreographer
- gpgpu
- 경제보복
- 블로그
- TTS
- ComputeShader
- 텍스처
- 금리
- 전기료
- 공유 컨텍스트
- texture
- 전기요금
- 애드핏
- 컴퓨트쉐이더
- 컴퓨트셰이더
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |