본문 바로가기

나의 플랫폼/안드로이드

[Android] TextView가 Ellipis 상태인지 체크 하는 방법

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


TextView에 singleLine이나 maxLines를 통해서 라인 제한을 주고,

ellipsize 설정을 통하여 '...' 으로 표현을 합니다.


그럼, 현재 ellipsize 상태인지 아닌지 알 수 있는 방법이 있을 까요?


public boolean isEllipsis(TextView textView) {
// 1이 나온다는 것은 글씨가 줄여졌다는 것이다.
if (textView.getLayout() != null) {
return textView.getLayout().getEllipsisCount(textView.getLineCount()-1) > 0;
}
return false;
}


상태를 파악하기 위해서 getLayout 이 null 이 아니어야 합니다.

getLayout 에서 Ellipsis 상태인지 아닌지 체크가 가능 하기 때문이죠.


getEllipsisCount 에 매개변수로 TextView에 라인을 넘겨 주고, 그 라인에 Ellipsize가 있을 경우

0이 아닌 값이 넘어 오게 됩니다.


따라서, 위소스를 보고 눈치 채신 분이 계시겠지만,

ellipsize를 'end' 상태일 경우 확인이 가능한 소스 이지요.


만약, 'start' 상태일 경우는 getEllipsisCount 에 0을 넣으면 되겠지요.


참고하세요.