TextView 줄바꿈을 글자 단위로 하기

안드로이드를 개발하다 보면 TextView에 여러 줄을 넣어야 할 때가 생긴다.
그렇지만 TextView란놈이 여러줄이 들어갈경우 공백단위로 줄바꿈이 되는 것이였다.
한글이 들어가고 여러줄이 있다보니 마지막이 너무 들숙 날숙 뒤면서 모양이 정말 엉망으로 보였다.

device-2011-08-06-184946.png

보이는 바와 같이 마지막 글자들은 단어가 길어질 경우 아래로 밀리면서 이쁘지 않은 라인을 형성하고 있다.

안드로이드 래퍼런스를 뒤져봐도 안드로이드 자체에 옵션이 없는 걸로 확인되었다.
그래서 구글링을 하게 되었지만…… 나의 검색 능력탓 인지는 모르겠으나 찾지를 못했다….

꽁수로 WebView를 실어서 HTML로 작성하는 방법도 있었다.
하지만 이곳에 WebView를 쓴다는건 내 마음이 허락치를 못했다.
그래서 자동으로 공백기준이 아닌 글자 기준으로 잘라주는 커스텀 TextView를 만들어 보기로 했다.

흠…조금 어려울꺼라 생각이 들었지만 의외로 쉽게 풀렸다. 주 핵심은 breakText 함수란 놈이였다. 

———————————————————–

버그 패치 : 2011.08.15
ScrollView 안에서 표지 되지 않은 문제가 발견되어 수정되었습니다.
(ScrollView 에서는 부모 높이 계산을 할수 없어서 인지 높이를 0으로 가져와 TextView 정상적으로 표지 되지 않은 버그가 발견되어 수정하였습니다.)
예전 소스를 가지고 계신분은 다시 받아 가시는게 좋을듯 합니다. ^^
————————————————————-
최적화 : 2011.08.21
기존소스를 최적화 하였습니다….군더더기를 좀 뺏네요 ^^
————————————————————-
버그 패치 : 2011.08.27
Xml에서 사용할때 오류 나는 문제 수정되었습니다.
————————————————————-

추가 : 2011.08.28
onDraw 할때 속성중 Padding 처리가 빠져 있어 추가되었습니다.^^

————————————————————-


그리 길지 않은 코드이다. 사용방법은 2가지가 있다. xml 에서 바로 사용하거나 java 코드에서 생성해서 사용해도 된다.

예를 들자면

 

device-2011-08-06-185026.png
뭐 이런식이다.^^ 도움이 필요한 자에게 유용했으면 좋겠다.

]]>

도큐멘트 에 올린 글

댓글 남기기