사용자 도구

사이트 도구


android:pdfdocument:multiline
multiline

문서의 이전 판입니다!


목적

다음과 같이 긴 글을 지정된 너비에 맞추어 여러 줄로 쓰게 하는 기능을 구현할 것이다.

Mutl Line

코드

다음이 전체 코드이다.

    // body Text
    fun bodyText(text : String, canvas: Canvas) {
 
        val textLayout = StaticLayout.Builder.obtain(text, 0, text.length, cellBodyLeft, 400)
            .setAlignment(Layout.Alignment.ALIGN_NORMAL)
            .setLineSpacing(0f, 1.2f)
            .setIncludePad(true).build()
 
        canvas.save()
        canvas.translate(50f, 350f)
        textLayout.draw(canvas)
        canvas.restore()
 
    }

1. static layout

가. obtain

obtatin 함수는 다음과 같이 인자를 받는다.

obtain(CharSequence source, int start, int end, TextPaint paint, int width)

첫번째는 텍스트, 두번째 시작하는 문자, 세번째는 끝나는 문자의 위치, 네번째는 페인터, 마지막은 레이아웃의 너비이다.

여기서 페인터는 통상읜 Paint가 아니라 TextPaint임을 유의하자. TextPaint는 Paint를 상속받으므로,

기존에 Paint로 선언했다면, 그냥 TextPaint로 선언하면 된다.

obtain함수에서 글자를 그릴 너비를 받아서, 이 너비 이상이 되면 줄 바뀜을 하게 해준다.

나. setAlignment

글자를 정렬하는 것이다.

디폴트 값은 Layout.Alignment#ALIGN_NORMAL 이다1)).

NORMAL이 왼쪽, CENTER가 중간, OPPOSITE이 오른쪽 정렬이다.

로그인하면 댓글을 남길 수 있습니다.

android/pdfdocument/multiline.1733994069.txt.gz · 마지막으로 수정됨: 2024/12/12 18:01 저자 이거니맨