티스토리 뷰


하나의 텍스트뷰에 텍스트마다 다른 색상의 컬러를 주고 싶을때 사용하는 방법입니다.

SpannableStringBuilder Class를 이용하면 간단하게 작업 할 수 있습니다.

먼저 코드를 보겠습니다.



SpannableStringBuilder builder = new SpannableStringBuilder("String");
builder.setSpan(new ForegroundColorSpan(Color.parseColor("#ff0000")), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
new_addr_textView.append(builder);

SpannableStringBuilder 클래스의 객체를 생성 해주고 setSpan 함수를 이용해서 텍스트 컬러를 바꿔주고 TextView 클래스의 append 함수를 이용해서 적용 해주면 됩니다.


setSpan 함수의 parameter를 살펴보면 

 - setSpan(컬러 객체(Object) , 컬러를 적용할 시작 인덱스(int) , 끝 인덱스(int) , flag(int) )


이런 식으로 되어있습니다.


위의 예제코드를 사용해서 텍스트를 만들면 


String 이렇게 텍스트가 완성 됩니다.




*참고


private TextView setColorInPartitial(String pre_string, String string, String color, TextView textView){
SpannableStringBuilder builder = new SpannableStringBuilder(pre_string + string);
builder.setSpan(new ForegroundColorSpan(Color.parseColor(color)), 0, pre_string.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.append(builder);
return textView;
}

저 같은 경우는 코드 재활용성을 위해서 위와 같이 함수로 만들어서 사용하고 있습니다. 참고하면 좋을 것 같습니다 :)

댓글
댓글쓰기 폼