본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] Canvas ( 혹은 Bitmap ) 에 Text 출력하기.

by 돼지왕 왕돼지 2012. 2. 28.
반응형


안녕하세요 돼지왕 왕돼지입니다.

오늘은 Canvas ( 혹은 Bitmap ) 에 Text 출력하기란 주제로 이야기 해볼까 합니다.
여기서 혹은 Bitmap 이라고 해 놓은 이유는, Canvas 를 생성할 때 Bitmap 을 Constructor 의 parameter로 전달해주면 그 Bitmap 에 그리는 것이기 떄문에 Canvas 에 그리는 것이 곧 Bitmap 에 그리는 것이 되어버리죠. 그래서 ( 혹은 Bitmap ) 을 추가하였습니다.



Canvas 의 Text 출력 APIs.

 

 void Canvas.drawText(String text, float x, float y, Paint paint)
 void Canvas.drawText(String text, int start, int end, float x, float y, Paint paint)
   -> 문자열의 일부분 (start, end로 조정) 출력
 
 void Canvas.drawText(char[] text, int index, int count, float x, float y, Paint paint)
   -> 문자열의 일부분 (index, count로 조정) 출력
 
 void Canvas.drawTextOnPath(String text, Path path, float hOffset, float vOffset, Paint paint)
   -> path를 따라서 hOffset, vOffset의 위치에 글씨 쓰기   


 

Text 에 Font 속성 주기 ( 실제로는 Paint 를 설정하는 것이죠. )

 

void Paint.setTextAlign(Paint.Align align)
   -> Paint.Align.Left,  .Right,  .Center (수평 정렬, drawText의 x를 글자의 어디에 맞출지..)
   -> 참고로 drawText의 y는 글자의 아래에 맞춰져 있다. 따라서 (0,0)을 하면 글씨 안 보임.
 
 void Paint.setTextSize(float textSize)
 void Paint.setUnderlineText(boolean strikeThruText)
 void Paint.setStrikeThruText(boolean subpixelText)
 void Paint.setTextSkewX(float skewX)  -> 기울임, +는 반시계방향
 void Paint.setTextScaleX(float scaleX)  ->  장평
 
 Typeface Paint.setTypeface(Typeface typeface)  -> 폰트
   -> ex) Pnt.setTypeface(Typeface.create((String)null, Typeface.BOLD));
  
static Typeface Paint.create(Typeface family, int style)
static Typeface Paint.create(String familyName, int style)
  -> style은 Typeface.NORMAL, BOLD, ITALIC 등
  -> family는 Typeface.DEFAULT, DEFAULT_BOLD, MONOSPACE, SANS_SERIF, SERIF
      (기본제공 폰트는 5개뿐..)

 
 


사용자 정의 폰트 지정

사용자가 원하는 폰트를 지정하려면. 먼저 res/assets 폴더로 폰트를 복사해야 한다.
 

Typeface createFromAsset (AssetManager mgr, String path)
  -> ex) Typefce font = Typeface.createFromAsset(getAssets(), "font.ttf");
             Pnt.setTypeface(font);



로그인 없이 추천 가능합니다. 손가락 꾸욱~





반응형

댓글