안드로이드 개발 질문/답변
(글 수 45,052)
외부 폰트 (ttf 파일)을 적용하기 위해 해당 폰트를
assets / fonts 에 넣고
Paint mPaint = new Paint();
mPaint.setTypeface(Typeface.createFromAsset(mMain.getContext().getAssets(), "fonts/ABCD.ttf"));
canvas.drawText("12345 ABCDEFG, 가나다라마바사", 10, (mPaint.getTextSize() * 1), mPaint);
위와 같은 형태로 적용 해 보았습니다.
그런데... 12345 (숫자) 부분과 ABCDE..(영문자) 부분은 폰트 적용이 잘 됬는데.
가나다라마바사 부분인 한글부분에서만 폰트가 적용되지 않고, 기본 폰트로 나오고 있습니다.
테스트에 사용된 폰트는 한글 전용으로 만들어진 폰트 4개와
DroidSans 계열 폰트 4종, DroidSerif 계열 폰트 4종입니다.
특이점은 위와 같이 말고 폰트 파일을 system 폴더에 넣고, 이를 Typeface.CreateFromFile("/system/fonts/...") 형태로 가져오면
숫자, 영문자, 한글 모두 정확히 폰트가 적용되는 점입니다.
또한 폰트파일이 지나치게 클 경우엔 아예 폰트가 안먹히는 현상도 발생합니다.