Android Jetpack Compose UI

    [Compose Text] align을 이용한 글자 정렬

    Text 정렬의 중요성 텍스트의 정렬 방식을 아는 것은 미적으로도 중요하지만 안드로이드 앱의 글로벌 런칭을 위해서도 중요하다. 특히 일부 국가(아랍권 국가)의 경우 문자열을 출력할 때 LTR 방식을 사용하는 것이 아닌 RTL 방식을 사용하고 있어서 텍스트의 정렬 방식의 차이를 제대로 이해하는 것이 중요하다. 만약 그렇지 않을 경우 특정 국가에 출시하기 위해 모든 텍스트 정렬을 찾아서 바꿔야 하는 수고가 생길 수 있다. LTR과 RTL에 대해 더 궁금하다면 아래 글을 참조하자. LTR과 RTL의 차이 : 글로벌 런칭을 위해 필요한 LTR(Left To Right)과 RTL(Right To Right)의 이해 LTR이란? LTR은 왼쪽에서 오른쪽으로 글자를 읽는 것이다. 대부분의 국가가 LTR 방식을 쓰고 ..

    [Compose Text] Text에 간격 만들기 : letter spacing, line height

    Text 간격 만들기 Text의 간격은 두가지가 있다. 하나는 글자간 간격이고, 다른 하나는 줄간 간격이다. Compose Text에서는 이러한 간격들을 설정할 수 있는 프로퍼티들을 제공한다. letterSpacing : 글자간 간격을 만드는 옵션 letterSpacing: TextUnit = TextUnit.Unspecified, lineHeight : 줄간 간격을 만드는 옵션 lineHeight: TextUnit = TextUnit.Unspecified 둘 모두 sp값에 해당하는 TextUnit을 인자로 받는다. 아래에서 이 둘이 어떻게 동작하는지 살펴보자. letterSpacing 이용해 글자간 간격 만들기 Text의 letterSpacing 프로퍼티를 이용하여 글자간 간격을 줄 수 있다. lett..

    [Compose Text] 폰트 스타일링 정리 : font size, font style, font weight

    선행지식 [Android Compose Resource] 1. Android Compose에서 FontFamily 만들기. - Text에 Font 적용시키기 [Android Compose Resource] 1. Android Compose에서 FontFamily 만들기. - Text에 Font 적용시키기 FontFamily란? FontFamily란 같은 폰트의 모음으로 같은 폰트에 대해 다양한 스타일(굵기)을 포함하는 번들을 뜻한다. Compose에서 FontFamily 만들기 기존 xml 기반의 안드로에서 리소스 시스템에서는 xml에 kotlinworld.com 폰트 스타일링이란 폰트 스타일링이란 설정된 FontFamily에 대해서 폰트의 사이즈, 스타일(Italic, normal), 굵기(weight..

    [Compose Text] Text Composable의 프로퍼티에 대해 알아보자

    Compose Text 스타일링의 구성 Compose의 Text는 다음 14가지의 속성을 설정할 수 있다. @Composable fun Text( text: String, modifier: Modifier = Modifier, color: Color = Color.Unspecified, fontSize: TextUnit = TextUnit.Unspecified, fontStyle: FontStyle? = null, fontWeight: FontWeight? = null, fontFamily: FontFamily? = null, letterSpacing: TextUnit = TextUnit.Unspecified, textDecoration: TextDecoration? = null, textAlign: T..

    [Android Compose] 2. offset사용하여 DropDownMenu가 펼쳐지는 위치 조정하기

    DropDownMenu의 위치 조정이 필요한 이유 material package에서 제공되는 DropDownMenu API는 내부에서 DropDownMenuPositionProvider에 의해 자동으로 위치가 조정되어 화면 상에 표시된다. val popupPositionProvider = DropdownMenuPositionProvider( offset, density ) { parentBounds, menuBounds -> transformOriginState.value = calculateTransformOrigin(parentBounds, menuBounds) } 만약 DropDownMenu가 표시될 위치를 조정할 수 없다면 여러 디자인적 요구사항이 반영이 될 수 없을 것이고, DropDown이 어..