안드로이드

[안드로이드] TextView 글자 중간에 색깔 넣기

부르스리 2017. 1. 20. 11:02
반응형


TextView 는 아마 가장 많이 쓰는 콘트롤중에 하나일 것이다.


많이 쓰는 만큼 익숙하지만 뭔가 살짝 아쉬움이 남는게 또 텍스트뷰다.


뷰 크기에 맞게 글자크기를 조절해 준다든지...아이폰처럼...


기타 여러가지 커스터마이징이 필요한 경우가 많다.



오늘은 커스텀 말고 사용법인데


텍스트 뷰에 스트링을 넣는데 중간에 색깔이 다를 필요가 있다.


이를테면 강조하기 위해서 빨간색을 넣는다든가...기타 등등


텍스트뷰를 쪼개서 setTextColor 를 통해서 한다고 하면


레이아웃도 엉망진창이 되고 원하는만큼 깔끔하지도 않다.


그런데 다행히 텍스트뷰는 HTML 을 집어넣을 수 있다!!!


HTML 이라면 기본적으로 많은 것이 가능하다.



내가 만들고 있는 메모장에는 검색 기능이 있다.


검색을 한 결과를 나타낼때...검색어는 뭔가 좀 표시를 해주고 싶겠지...기본적으로...



String memo = data.getMemo();
if(mSearchWord!=null && !mSearchWord.isEmpty()) memo = memo.replace(mSearchWord,"<font color=red>"+mSearchWord+"</font>");
holder.text.setText(Html.fromHtml(memo.replace"\n","<br>")));


리스트 어댑터에 위와 같이 넣어주면 검색어만 빨간색으로 표시가 된다.


줄바꿈은 HTML 로 변경하기 위해 \n 을 br 태그로 변경해 주어야 한다.


간편하고 좋지 아니한가..


HTML 태그는 편할대로 사용하면 된다.


안드로이드 텍스트뷰에서는 모든 태그가 되는건 아니고 몇가지가 적용이 되는데


font, b, h 태그 등 글자와 관련된 몇가지만 된다.





반응형