Notice
Recent Posts
Recent Comments
Link
투케이2K
448. (kotlin/코틀린) [유틸 파일] getTextSubChangeString : 텍스트 부분 색상 , 굵기 , 폰트 변경 수행 - SpannableString 본문
Kotlin
448. (kotlin/코틀린) [유틸 파일] getTextSubChangeString : 텍스트 부분 색상 , 굵기 , 폰트 변경 수행 - SpannableString
투케이2K 2023. 12. 15. 15:39[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [RETURN] getTextSubChangeString : 텍스트 부분 색상 , 굵기 , 폰트 변경 수행
// -----------------------------------------------------------------------------------------
fun getTextSubChangeString(mContext: Context, color: String, originText: String, subText: String): SpannableString? {
/**
* // -----------------------------------------
* [getTextSubChangeString 메소드 설명]
* // -----------------------------------------
* 1. 텍스트 부분 색상 , 굵기 , 폰트 변경 수행
* // -----------------------------------------
* 2. 호출 방식 :
*
* C_App.getTextSubChangeString(A_Intro@this, "#ff0000", "안녕 TWOK입니다", "TWOK")
*
* // -----------------------------------------
*/
// [리턴 값 선언]
var returnData: SpannableString? = null
var M_LOG = ""
// [로직 처리 실시]
try {
if (C_Util.stringNotNullMulti(arrayOf(originText, subText, color)) === true
&& color.startsWith("#") == true) {
if (originText.contains(subText) == true) {
// [SpannableString 객체 생성]
returnData = SpannableString(originText)
// [변경하려는 문자열 인덱스 위치 확인]
val startIdx = originText.indexOf(subText)
val endIdx = startIdx + subText.length
// [SpannableString 속성 지정]
returnData.setSpan(ForegroundColorSpan(Color.parseColor(color)), startIdx, endIdx, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
returnData.setSpan(StyleSpan(Typeface.BOLD), startIdx, endIdx, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
returnData.setSpan(RelativeSizeSpan(1.3f), startIdx, endIdx, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE)
M_LOG = "[Success] :: Text Change"
} else {
M_LOG = "[Error] :: Sub Text Not Contains"
}
} else {
M_LOG = "[Error] :: Input Data Is Null"
}
} catch (e: Exception) {
M_LOG = "[Exception] :: " + e.message.toString()
S_Log._printStackTrace_(mContext, S_FinalMsg.LOG_BUG_STATE, null, e)
}
// [로그 출력 실시]
///*
// ===============================================================
S_Log._D_("텍스트 부분 색상 , 굵기 , 폰트 변경 수행", arrayOf(
"INPUT [color] :: $color",
"INPUT [originText] :: $originText",
"INPUT [subText] :: $subText",
"M_LOG :: $M_LOG"
))
// ===============================================================
// */
// [리턴 반환 실시]
return returnData
}
반응형
'Kotlin' 카테고리의 다른 글
Comments