IT_Programming/Android_Java

[Android] ClickableSpan 사용하기

JJun ™ 2014. 12. 1. 01:27



 출처: http://colib.tistory.com/entry/Android-ClickableSpan-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0




Spannable을 이용하면 TextView에 밑줄, 색상, 크기 등 여러가지 효과를 줄 수 있습니다. 이 외에도 click 이벤트를 줄 수도 있는데요. 이를 활용하면 단순히 글자만 나타내는 TextView보다 훨씬 다양하게 표현할 수 있습니다. 


아래는 Textview의 일부 텍스트(start부터 end) 부분을 클릭 가능한 형태로 만들어 주는 코드의 예시입니다.


private void setClickSpan()

{	
	clickSpan = new ClickableSpan()
	{
		public void onClick(View v)
		{
			Toast.makeText(this, "클릭스팬 발생", 1000).show();
		}
	}
}
private void setSpan()
{
 	Spannable span = (Spannable) textView.getText();
	span.setSpan(clickSpan, start, end, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
}


클릭스팬 외에 아래의 세 클래스를 이용하면 각각 밑줄, 글자색, 배경색을 바꿀 수 있습니다.


span.setSpan(new UnderlineSpan(), start, end, 

	Spannable.SPAN_INCLUSIVE_INCLUSIVE); 
span.setSpan(new ForegroundColorSpan(0xFF0B76C8), start, end, 
	Spannable.SPAN_INCLUSIVE_INCLUSIVE);
span.setSpan(new BackgroundColorSpan(0xFF0B76C8), start, end, 
	Spannable.SPAN_INCLUSIVE_INCLUSIVE);