TextAttribute 클래스
TextAttribute 클래스
TextAttribute 클래스는 텍스트 렌더링에 사용되는 속성 키와 속성 값을 정의해요. TextAttribute 인스턴스는 Font, TextLayout, AttributedCharacterIterator 및 텍스트 속성을 다루는 다른 클래스에서 속성을 식별하는 속성 키로 사용돼요. 이 클래스에서 정의한 다른 상수는 속성 값으로 사용할 수 있어요.
본문
각 텍스트 속성에 대해 문서는 다음을 제공해요: 값의 타입, 관련 미리 정의된 상수(있는 경우), 속성이 없는 경우의 기본 효과, 제한이 있으면 유효 값, 효과에 대한 설명.
public final class TextAttribute
extends AttributedCharacterIterator.Attribute
값 규칙
- 속성 값은 항상 변경 불가능(immutable)해야 해요.
- 값 제한이 주어진 곳에서는, 그 집합 밖의 값은 미래 사용을 위해 예약되며 기본값처럼 취급돼요.
null값은 기본값과 동일하게 취급돼요.- 값이 올바른 타입이 아니면 속성은 무시돼요.
- 값의 정체성은 중요하지 않고 실제 값만 중요해요. 예를 들어
TextAttribute.WEIGHT_BOLD와Float.valueOf(2.0f)는 같은WEIGHT를 나타내요. Number타입 속성 값(WEIGHT,WIDTH,POSTURE,SIZE,JUSTIFICATION,TRACKING)은 자연 범위 내에서 변할 수 있고 미리 정의된 상수에 제한되지 않아요. 실제 값은Number.floatValue()로 얻어요.WEIGHT,WIDTH,POSTURE값은 시스템이 보간해서 '가장 가까운 사용 가능한' 글꼴을 선택하거나 다른 기법으로 사용자 요청을 근사해요.
주요 속성 요약
| 키 | 값 타입 | 기본 값 |
|---|---|---|
FAMILY |
String |
"Default" (플랫폼 기본 사용) |
WEIGHT |
Number |
WEIGHT_REGULAR |
WIDTH |
Number |
WIDTH_REGULAR |
POSTURE |
Number |
POSTURE_REGULAR |
SIZE |
Number |
12.0 |
TRANSFORM |
TransformAttribute |
TransformAttribute.IDENTITY |
SUPERSCRIPT |
Integer |
0 |
FONT |
Font |
null (폰트 결정 재정의 안 함) |
CHAR_REPLACEMENT |
GraphicAttribute |
null |
FOREGROUND / BACKGROUND |
Paint |
null |
UNDERLINE |
Integer |
-1 |
STRIKETHROUGH |
Boolean |
false |
RUN_DIRECTION |
Boolean |
null |
BIDI_EMBEDDING |
Integer |
0 |
JUSTIFICATION |
Number |
JUSTIFICATION_FULL |
INPUT_METHOD_HIGHLIGHT |
InputMethodHighlight |
null |
INPUT_METHOD_UNDERLINE |
Integer |
-1 |
SWAP_COLORS |
Boolean |
false |
NUMERIC_SHAPING |
NumericShaper |
null |
KERNING |
Integer |
0 |
LIGATURES |
Integer |
0 |
TRACKING |
Number |
0 |
주요 상수
WEIGHT_REGULAR,WEIGHT_BOLD— 글꼴 무게POSTURE_REGULAR,POSTURE_OBLIQUE— 기울임WIDTH_CONDENSED,WIDTH_REGULAR,WIDTH_EXTENDED— 폭UNDERLINE_ON— 밑줄STRIKETHROUGH_ON— 취소선RUN_DIRECTION_LTR,RUN_DIRECTION_RTL— 읽기 방향SUPERSCRIPT_SUPER,SUPERSCRIPT_SUB— 위·아래 첨자
사용 예
AttributedString에 addAttribute(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD, start, end)로 속성을 적용해 특정 범위의 텍스트를 굵게 렌더링할 수 있어요.