민프
[Android] StaticLayout을 이용해서 Canvas에 텍스트를 MulitLine으로 만들어보자!! 본문
여행기 정보를 PDF로 옮길때
텍스트 부분을 canvas.drawText를 이용해서 그려줬는데
밑 사진 처럼
MultiLine이 되지 않고 가로로 쭉~ 이어져서 모든 내용을 볼 수가 없었다..
글자가 전체 Layout의 폭을 넘어갈때 자동으로 밑으로 넘겨주는 것을 찾아보았는데
안드로이드에서 기본으로 제공하고 있는 StaticLayout이 있었다~(역시 구글링..)
StaticLayout을 이용하기 위해
API 24 부터는 Builder을 이용한 생성자방식을 사용하여야 한다.
String get_memo = pdf_root_text_memo.getText().toString();
title_paint.setTextAlign(Paint.Align.CENTER);
title_paint.setTypeface(Typeface.create(Typeface.DEFAULT,Typeface.BOLD));
title_paint.setTextSize(20);
canvas.drawText(get_memo,595/2,500,title_paint); //staticLayout 적용안한 글
StaticLayout.Builder builder = StaticLayout.Builder.obtain(get_memo
, 0
, get_memo.length()
, title_paint
, 300 );
StaticLayout textLayout = builder.build();
canvas.save();
canvas.translate(595/2,0);
textLayout.draw(canvas);
canvas.restore();
이미지를 보면 StaticLayout을 적용해서 MulitLine이 가능하도록 해보았다.
'[Android]' 카테고리의 다른 글
[Android] FCM Push 기능 구현해보자!! (0) | 2021.07.06 |
---|---|
[Android] 프로필 사진을 만들어보자!!(카메라, 앨범, 사진CROP) (0) | 2021.07.03 |
[Android] 여러 페이지의 PDF를 만들어보자!! (0) | 2021.07.02 |
[Android] 여러 페이지의 PDF 로 만들어보자(PdfDocument, Paint, Canvas, 레이아웃 캡쳐) (0) | 2021.07.02 |
[Android] Bitmap 이미지의 크기 조정하기 (0) | 2021.07.01 |
Comments