profile image

L o a d i n g . . .

반응형

 

Android TextView String resource bold / textView set html

 

텍스트뷰에는 String만이 아닌 html로 되어 있는 string resource도 추가할 수 있는데, 기존의 방법과는 조금 다르다

 

<string name="sample"><![CDATA[<b>Title</b><br><p>sample is sample</p>]]></string>

 

string resource에서 CDATA를 이용하면 간단한 html 태그도 사용할 수 있다.

컬러까지 변경이 가능한데 폰트 크기까지는 변경이 안되는 걸로 알고 있다.

 

일단 제목에 bold라고 해놓았으니 해당 태그인 <b>태그를 추가 하였다.

 

위와 같이 설정 후 기존에 textview에 setText를 하면 에러가 난다.

fun spannedToString(msg: String): Spanned {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        return Html.fromHtml(msg, Html.FROM_HTML_MODE_LEGACY)
    } else {
        @Suppress("DEPRECATION")
        return Html.fromHtml(msg)
    }
}

위와 같은 간단한 함수를 만든 후 

val sampleMsg = context.getString(R.string.sample)
textview.text = spannedToString(sampleMsg)

위와 같은 방법으로 textview에 셋팅을 하면 html 태그가 적용된 형태의 textview을 확인할 수 있다.

 

개인적으로 string resource가 지저분해져서 쓰고 싶지는 않지만 간단한거는 사용하면 좋을 것 같다!

반응형
복사했습니다!