2012-07-11 3 views
0

텍스트를 캔버스에 그리는 중이고 텍스트가 오른쪽 경계에 도달하면 다음 줄로 넘어가도록 사각형을 할당하려고합니다. 설정할 수있는 "정렬"속성이 있으므로 오른쪽과 가운데의 개념이 분명히 있지만 텍스트 상자의 너비를 지정하는 방법을 알 수는 없습니다.페인트로 텍스트 사각형을 지정할 수 있습니까?

TIA

편집 ... 나는 내가 Paint.breakText 방법을 이용하여 내 자신의 줄 바꿈 삽입 방법을 출시 할거야 느낌을 받고 있어요. 나는 그것이 사실이 아니라고 정말로 희망하고있다! :)

edit2 .. 그래서 다른 모든 항목 위에 drawText는 \ n을 무시하고 [] 누락 된 문자로 그립니다.

나는 각 줄에 텍스트의 원점을 아래로 이동시키는 해결 방법을 작성했지만, BOY는이 추한 것입니다!

답변

1

Paint.getTextBounds는 "(0,0)에서 묵시적 원점, 문자를 둘러싸는 가장 작은 사각형 (호출자에 의해 할당) 경계에 돌려줍니다."

하여 문자열 폭을 반환

아마도 가장 직접적으로 직접 문자열을 그릴 필요가 있다고 생각합니다.

+0

예 ... 그 것처럼 보입니다 ... 오 ... 글쎄, 내가 끝나면 내 코드를 게시 할거야. 누군가 다른 사람이 유용하다고 생각하면 –

0

직접 텍스트를 자르지 말고 StaticLayout을 사용해야합니다. 줄 바꿈 기능을 제공합니다. 워드 프로세서에서 인용 : 당신은 당신이 당신의 자신의 위젯 또는 사용자 정의 표시 객체를 구현하고, 직접 Canvas.drawText() 전화를 유혹 할 것입니다 직접하지 않는 한이 클래스를 사용할 필요가 없습니다

.

+0

StaticLayout을 캔버스에 어떻게 그리나요? 나는 실제로 비트 맵 (사용자가 찍은 사진에 텍스트 추가)을 출력하고있다. 따라서, 내가 당신을 오해하지 않는 한, 나는이 해결책이 적용된다고 생각하지 않습니다. –

+0

@ Dr.Dredel - 부모'Layout' 클래스는'draw (Canvas)'메소드를 정의합니다. 캔버스 원점을 레이아웃을 원하는 위치로 변환해야합니다. –

관련 문제