이번 시간에는 SpannableString 를 이용해서 텍스트뷰 꾸미는 방법에 대하여 알아보겠습니다.
- 설명-
1. SpannableString 적용시킬 TextView
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp" />
</LinearLayout>
- 설명 -
spanString.setSpan(적용 속성, 처음 위치, 마지막 위치, 플래그)
1. val clickableSpan: ClickableSpan
텍스트뷰에 적용하면 클릭 이벤트 발생
2. ForegroundColorSpan
글자색 색상 설정
3. StyleSpan
글씨체 설정
4. BackgroundColorSpan
배경색 변경
5. UnderlineSpan
밑줄 처리
6. AbsoluteSizeSpan
글씨 크기 설정
7. textView.movementMethod
이동 방법 설정
8. 참조 문서
https://developer.android.com/guide/topics/text/spans?hl=ko
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//객체 생성
val textView: TextView = findViewById(R.id.textView)
val text: String = "네이버로 이동: 클릭"
val spanString: SpannableString = SpannableString(text)
//클릭 이벤트
val clickableSpan: ClickableSpan = object: ClickableSpan(){
override fun onClick(view: View) {
val url = "https://www.naver.com"
val intent: Intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
startActivity(intent)
}
}
//클릭 설정
spanString.setSpan(clickableSpan, 9, 11, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
//글자색 변경
spanString.setSpan(ForegroundColorSpan(Color.RED), 0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
//글씨체 변경
spanString.setSpan(StyleSpan(Typeface.BOLD), 5, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
//배경색 변경
spanString.setSpan(BackgroundColorSpan(Color.GREEN), 5, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
//밑줄
spanString.setSpan(UnderlineSpan(), 5, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
//글씨 크기
spanString.setSpan(AbsoluteSizeSpan(100), 5, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
//적용
textView.text = spanString
//링크 및 이동 적용
textView.movementMethod = LinkMovementMethod.getInstance()
}//onCreate
2022.08.19 - [안드로이드] - [안드로이드 코틀린] 속성 애니메이션 (이미지를 움직이게 하는 방법)
2022.08.18 - [안드로이드] - [안드로이드 코틀린] 내가 원하는 글씨체 폰트(Font) 적용하는 방법
2022.08.17 - [안드로이드] - [안드로이드 코틀린] 소프트 키보드(Soft Keyboard) 보여주는 방법, 숨기는 방법
[안드로이드 코틀린 ] 컨텍스트메뉴(ContextMenu) 바탕화면 변경하는 방법 (2) | 2022.08.24 |
---|---|
[안드로이드 코틀린] 옵션메뉴(OptionMenu), 서브메뉴(Sub Menu) 만드는 방법 (0) | 2022.08.23 |
[안드로이드 코틀린] 속성 애니메이션 (이미지를 움직이게 하는 방법) (0) | 2022.08.19 |
[안드로이드 코틀린] 내가 원하는 글씨체 폰트(Font) 적용하는 방법 (0) | 2022.08.18 |
[안드로이드 코틀린] 소프트 키보드(Soft Keyboard) 보여주는 방법, 숨기는 방법 (0) | 2022.08.17 |
댓글 영역