안드로이드 텍스트뷰 속성. (Android TextView Attributes)
1. TextView 속성
TextView가 화면에 출력될 때, 기본적으로 단순한 텍스트 형태로 표시되지만, 속성을 사용함으로써 훨씬 다양한 모양과 기능을 가지게 만들 수 있습니다. TextView의 속성은 다른 View 위젯에 비하여 상당히 많은 편이며, View로부터 상속받은 속성을 제외하더라도 약 70 여가지나 됩니다.
하지만 자주 사용되는 속성은 그리 많지 않아서 모든 속성에 대한 사용법을 외우고 있을 필요가 없습니다. 대신 필요할 때 마다 자신이 만들고자 하는 기능을 만족하는 속성이 있는지 찾아서 사용하면 됩니다.
2. TextView 속성의 종류
TextView가 제공하는 속성의 종류 및 설명은 다음과 같습니다.
속성 이름 | 설명 |
---|---|
autoLink | TextView를 링크 형태로 사용. |
autoText | 텍스트 입력 시, 자동 오타 수정 기능 사용. |
breakStrategy | TextView의 텍스트 줄넘김 정책 지정. |
bufferType | getText() 함수로 리턴되는 버퍼 타입 지정. |
capitalize | 알파벳 소문자 입력(표시) 시, 대문자로 자동 변환. |
cursorVisible | 텍스트 입력 커서를 보일지 말지 여부 지정. |
digits | TextView에 입력 가능한 문자 제한. |
drawableBottom | 텍스트를 기준으로 아래쪽에 이미지 출력. |
drawableEnd | 텍스트를 기준으로 끝 위치에 이미지 출력. |
drawableLeft | 텍스트를 기준으로 왼쪽에 이미지 출력. |
drawablePadding | 텍스트와 이미지 사이의 간격 설정. |
drawableRight | 텍스트를 기준으로 오른쪽에 이미지 출력. |
drawableStart | 텍스트를 기준으로 시작 위치에 이미지 출력. |
drawableTint | drawable을 혼합하기 위한 색조(Tint) 지정. |
drawableTintMode | drawable tint 혼합(blending) 모드 설정. |
drawableTop | 텍스트를 기준으로 위쪽에 이미지 출력. |
editable | 입력 가능 여부 지정. |
editorExtras | 텍스트 입력기에 추가 데이터 제공. (텍스트 입력기 구현에 한정) |
elegantTextHeight | elegant height metrics 플래그 켜기. |
ellipsize | 텍스트 생략기호(...) 또는 텍스트 흐르는 효과 주기. |
ems | EM 단위의 크기로 TextView의 고정 너비 설정. |
fontFamily | TextView의 텍스트 폰트 설정. |
fontFeatureSettings | Open Type 폰트(.otf)의 고급 설정 제어. |
freezesText | TextView의 상태(텍스트, 커서 등) 유지. |
gravity | TextView의 텍스트 정렬 방식 지정. |
height | TextView의 고정된 높이 지정. |
hint | TextView의 텍스트가 빈 상태일 때, 출력될 텍스트 설정. |
hyphenationFrequency | '-'(hyphen)이 추가되는 빈도 설정. |
imeActionId | 텍스트 입력기(IME) 액션 버튼이 눌려졌을 때의 이벤트 ID 지정. |
imeActionLabel | 텍스트 입력기(IME) 액션 버튼에 표시될 라벨 텍스트 지정. |
imeOptions | 텍스트 입력기(IME)의 표시 옵션 지정. |
includeFontPadding | Font 위/아래 padding 사용 여부 설정. |
inputMethod | 특정 유형의 입력 방법 지정. |
inputType | 텍스트 입력기(IME)에서 입력 가능한 데이터 유형, 방법, 기능 지정 |
letterSpacing | 글자 간격 조절. |
lineSpacingExtra | 텍스트 줄 간격 조절. (텍스트 높이 상관 없이 지정 값 설정) |
lineSpacingMultiplier | 텍스트 줄 간격 조절. (텍스트 높이에 곱한 값 설정) |
lines | 정확히 텍스트 줄 단위로 TextView 높이 설정. |
linksClickable | 링크 클릭 시, 링크 연결 프로그램 실행 여부 지정. |
marqueeRepeatLimit | marquee(텍스트 흐르는 효과) 애니메이션 반복 횟수 지정. |
maxEms | TextView의 EM 단위 최대 너비 설정. |
maxHeight | TextView의 최대 높이 지정. |
maxLength | TextView의 텍스트 최대 길이 제한. |
maxLines | TextView의 줄(line) 단위 최대 높이 지정. |
maxWidth | TextView의 최대 너비 지정. |
minEms | TextView의 EM 단위 최소 너비 설정. |
minHeight | TextView의 최소 높이 지정. |
minLines | TextView의 줄(line) 단위 최소 높이 지정. |
minWidth | TextView의 최소 너비 지정. |
numeric | 숫자만 입력 가능하게 만들기. |
password | 입력되는 텍스트 감추기. (대신 '•'(password dot) 표시) |
phoneNumber | 전화번호만 입력 가능하게 만들기. |
privateImeOptions | 텍스트 입력기(IME)에 구현에 제한된(private) 옵션 지정. |
scrollHorizontally | TextView 가로 스크롤 가능하게 만들기. |
selectAllOnFocus | TextView가 Focus될 때, 자동으로 모든 텍스트 선택하기. |
shadowColor | 텍스트 아래에 표시될 희미한 그림자 색상 지정. |
shadowDx | 텍스트와 그림자 사이의 가로 방향(x 축) 간격 조절 |
shadowDy | 텍스트와 그림자 사이의 세로 방향(y 축) 간격 조절 |
shadowRadius | 그림자의 범위 조절. |
singleLine | 텍스트가 한 줄로 출력되도록 강제. |
text | 화면에 표시될 텍스트 지정. |
textAllCaps | 텍스트를 모두 대문자로 출력. |
textAppearance | color, typeface, size, style을 한번에 설정. |
textColor | 텍스트 색상 설정. |
textColorHighlight | 선택 텍스트의 배경 색상 설정. |
textColorHint | hint 텍스트의 글자 색상 지정. |
textColorLink | 링크로 사용되는 텍스트의 글자 색상 지정. |
textIsSelectable | TextView의 텍스트 선택 가능하도록 만들기. |
textScaleX | 텍스트 글자 너비 조절(늘리기/줄이기). |
textSize | 텍스트 폰트 크기 설정. |
textStyle | 텍스트 스타일(bold, italic) 지정. |
typeface | 텍스트 폰트 typeface 설정. |
width | TextView의 고정된 너비 지정. |
3. TextView, EditText 그리고 Button
TextView는 EditText와 Button의 부모 클래스입니다. 텍스트를 표시하기 위한 용도로 만들어진 TextView, 텍스트를 입력받아 화면에 표시하기 위한 용도로 사용되는 EditText, 그리고 텍스트(또는 이미지)를 출력한 다음, 사용자로부터의 터치 입력을 처리하기 위한 Button.
이 세 가지 View 위젯의 공통점은 바로 텍스트를 출력하는 기능을 가진다는 것이죠. 그래서 TextView가 부모 클래스가 되고, 역할이 다른 EditText와 Button이 각각 TextView의 자식으로 만들어져 TextView의 속성을 물려받은 것입니다.
특히, API Level 3에서 "editable" 속성을 포함한 텍스트 편집 관련 속성들이 deprecated되기 전에는, TextView의 속성들을 사용하여 EditText가 가진 거의 대부분의 기능을 제공할 수 있었다는 것을 상기할 필요가 있습니다. 이는 TextView와 EditText의 속성에 대한 경계가 모호하다는 것을 의미하죠.
API Level 3부터 EditText에서만 적용될 수 있는 속성들이 TextView에서 deprecated되기는 했지만, 그 속성에 대한 정의가 EditText로 옮겨간 것은 아니고, TextView의 설명에 그대로 남아 있습니다. 하지만 TextView에는 더 이상 적용될 수 없는 속성들이죠.
TextView 속성에 대한 설명 중에 빠진 부분은 EditText 속성 설명에서 찾을 수 있으며, 좀 더 쉽게 위에서 나열한 TextView 속성에 걸린 링크를 통해 EditText 관련 속성 정보를 확인할 수 있습니다.
4. 참고.
- TextView 속성에 대한 자세한 도움말.
- [안드로이드 개발 참조문서 TextView 항목] 내용을 참고하세요.
- R.attr에 대한 도움말.
- [안드로이드 개발 참조문서. R.attr 항목]의 내용을 참고하세요.
- 텍스트뷰 기본 사용법.
- [텍스트뷰 기본 사용법]의 내용을 참고하세요.