안드로이드 텍스트뷰 속성. (Android TextView Attributes)

2016. 8. 19. 10:10


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. 참고.


ANDROID 프로그래밍/TEXTVIEW