TextAttribute 클래스

TextAttribute 클래스

TextAttribute 클래스는 텍스트 렌더링에 사용되는 속성 키와 속성 값을 정의해요. TextAttribute 인스턴스는 Font, TextLayout, AttributedCharacterIterator 및 텍스트 속성을 다루는 다른 클래스에서 속성을 식별하는 속성 키로 사용돼요. 이 클래스에서 정의한 다른 상수는 속성 값으로 사용할 수 있어요.

출처: Java API Reference

본문

각 텍스트 속성에 대해 문서는 다음을 제공해요: 값의 타입, 관련 미리 정의된 상수(있는 경우), 속성이 없는 경우의 기본 효과, 제한이 있으면 유효 값, 효과에 대한 설명.

public final class TextAttribute
extends AttributedCharacterIterator.Attribute

값 규칙

  • 속성 값은 항상 변경 불가능(immutable)해야 해요.
  • 값 제한이 주어진 곳에서는, 그 집합 밖의 값은 미래 사용을 위해 예약되며 기본값처럼 취급돼요.
  • null 값은 기본값과 동일하게 취급돼요.
  • 값이 올바른 타입이 아니면 속성은 무시돼요.
  • 값의 정체성은 중요하지 않고 실제 값만 중요해요. 예를 들어 TextAttribute.WEIGHT_BOLDFloat.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 — 위·아래 첨자

사용 예

AttributedStringaddAttribute(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD, start, end)로 속성을 적용해 특정 범위의 텍스트를 굵게 렌더링할 수 있어요.

더 알아보기