상세 컨텐츠

본문 제목

[안드로이드 코틀린] 텍스트뷰(TextView) 다양하게 꾸며보는 방법

안드로이드

by aries574 2022. 8. 22. 11:36

본문


이번 시간에는 SpannableString 를 이용해서 텍스트뷰 꾸미는 방법에 대하여 알아보겠습니다. 


목차

1. 실행 화면
2. 메인 화면 activity_main.xml
3. 메인 코드 MainActivity.kt


1. 실행 화면

 

2. 메인 화면 activity_main.xml

- 설명-

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>

 

 

3. 메인 코드 MainActivity.kt

- 설명 -

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 

 

스팬  |  Android 개발자  |  Android Developers

스팬 스팬은 강력한 마크업 객체로 문자나 단락 수준에서 텍스트 스타일을 지정하는 데 사용할 수 있습니다. 텍스트 객체에 스팬을 연결하여 다양한 방식으로 텍스트를 변경할 수 있습니다. 예

developer.android.com

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 - [안드로이드] - [안드로이드 코틀린] 속성 애니메이션 (이미지를 움직이게 하는 방법)

 

[안드로이드 코틀린] 속성 애니메이션 (이미지를 움직이게 하는 방법)

이번 시간에는 속성 애니메이션을 통해 아이콘을 가로, 세로, 회전, 사라지고, 보이는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 메인 화면 activity_main.xml 3. 메인 코드 MainActivity.kt 1. 실..

aries574.tistory.com

2022.08.18 - [안드로이드] - [안드로이드 코틀린] 내가 원하는 글씨체 폰트(Font) 적용하는 방법

 

[안드로이드 코틀린] 내가 원하는 글씨체 폰트(Font) 적용하는 방법

이번 시간에는 안드로이드 기본 폰트가 아닌 다운로드한 폰트를 적용하는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 폰트 폴더 font 3. 메인 화면 activity_main.xml 4. 메인 코드 MainA

aries574.tistory.com

2022.08.17 - [안드로이드] - [안드로이드 코틀린] 소프트 키보드(Soft Keyboard) 보여주는 방법, 숨기는 방법

 

[안드로이드 코틀린] 소프트 키보드(Soft Keyboard) 보여주는 방법, 숨기는 방법

이번 시간에는 EditText를 이용해서 소프트 키보드를 보이거나 숨기는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 메인 화면 activity_main.xml 3. 메인 코드 MainActivity.kt 1. 실행 화면..

aries574.tistory.com

 

반응형

관련글 더보기

댓글 영역