화면에 너무 긴 텍스트가 담길 때 종종 말줄임 표시가 필요하곤 하다.
오늘은 텍스트에 말줄임 표시(...)를 적용해본다.
✅ 글자 수를 지정할 때
정해진 글자 수를 넘어가면 말줄임 표시를 적용하는 방법이다.
위와 같은 10개의 텍스트가 존재한다고 가정했을 때,
5까지만 표시하고 그 뒤의 텍스트는 ... 표시해보자.
bind.textview.apply {
text = text.substring(0, 5) + "..."
}
substring() 뿐만 아니라 take(), split(), charAt() 등 방법은 다양하다.
문자열을 자르는 방법은 각자 취향껏 적용하면 된다.
결과적으로는 말줄임(...) 적용에 성공했다.
하지만 위 방법으로는 글자 수가 고정적이지 않고 변동되는 상황 등,
조건문 분기 처리를 해야하는 경우에 매우 번거로워질 수 있다.
✅ 영역 기준으로 자동 적용 - ellipsize
지정된 글자 수를 기준으로 말줄임 처리를 하는 것이 번거롭다면,
지정된 영역을 기준으로 말줄임 처리를 자동 적용해보자.
대충 다음과 같은 속성의 TextView를 만들어준다.
<TextView
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
android:maxLines="1"
...
/>
A~Z 까지 출력했지만 Y, Z 가 짤린 모습이다.
이 상태에서 ellipsize 속성을 추가해준다.
<TextView
...
android:ellipsize="end"
/>
ellipsize 속성을 end로 지정한다.
영역을 넘어가는 부분부터 자동으로 말줄임 표시(...)가 적용되었다.
영역을 기준으로 자동 적용되기 때문에 상당히 편리하다.
예를 들어, 좌우로 Margin을 적용한 경우에는
위 처럼 좌우 Margin이 적용된 지정된 영역 내에서 말줄임 표시가 적용된다.
android:maxLines="2"
ellipsize="end" 속성은 유지한 채, 위 처럼 줄 수만 변경하면
마지막 줄의 끝부분에서 말줄임 표시가 적용된다.
🎈 앞 부분에 말줄임 표시 적용
android:ellipsize="start"
🎈 중앙에 말줄임 표시 적용
android:ellipsize="middle"
안드로이드 환경에서 텍스트는 되도록 sp 사용을 권장한다.
하지만 sp는 사용자가 기기에 설정한 텍스트 크기가 적용되기 때문에,
개발자가 의도한 텍스트의 범위대로 표현되지 않을 때가 많다.
그렇기 때문에 사소한 텍스트라도 줄 수를 넘어가지 않는지,
텍스트뷰의 범위를 벗어나지는 않는지 등을 체크해줘야 한다.
그리고 이러한 상황에서 말줄임 처리를 유용하게 사용하곤 한다.
'Android (안드로이드)' 카테고리의 다른 글
[Android] DownloadManager / HTTP 통신으로 파일 다운로드하기 (0) | 2025.01.10 |
---|---|
[Android] View에 Ripple 효과 적용하기 / 버튼 눌리는 애니메이션 (1) | 2024.12.29 |
[Android] 앱에서 기기 볼륨 조절하기 / AudioManager (+TTS) (2) | 2024.12.22 |
[Android] 앱에서 TTS 사용해보기 (1) | 2024.12.21 |
[Android] OSS Licenses / 라이선스란? / 앱에 라이선스 표시하기 / OSSLicensesPlugin (1) | 2024.12.20 |