분류 전체보기

이번 글에서 다룰 내용 drawRect를 사용하면 직사각형만을 만들 수 있다. 라운드 처리는 안드로이드 UI에서 매우 중요한 요소이므로, Canvas에서는 라운딩 처리된 사각형을 만드는 drawRoundRect 함수를 제공한다. 이번 글에서는 이에 대해 알아보도록 한다. drawRoundRect 함수 살펴보기 fun drawRoundRect( color: Color, topLeft: Offset = Offset.Zero, size: Size = this.size.offsetSize(topLeft), cornerRadius: CornerRadius = CornerRadius.Zero, style: DrawStyle = Fill, /*@FloatRange(from = 0.0, to = 1.0)*/ alph..
이번 글에서 다룰 내용 이번 글에서는 Canvas의 drawRect를 사용해 사각형을 그리는 방법에 대해 깊게 다룬다. 두가지 함수가 지원되는 drawRect와 drawRect의 각 파라미터가 어떤 역할을 하는지 알아본다. Color 객체를 사용하는 drawRect함수 먼저 Color 객체를 사용하는 drawRect함수부터 살펴본다. fun drawRect( color: Color, topLeft: Offset = Offset.Zero, size: Size = this.size.offsetSize(topLeft), /*@FloatRange(from = 0.0, to = 1.0)*/ alpha: Float = 1.0f, style: DrawStyle = Fill, colorFilter: ColorFilte..
Compose의 Canvas와 Native Canvas의 관계 Compose의 Canvas는 내부적으로는 xml에서 사용하던 Canvas와 같은 Canvas를 사용한다. 즉, Compose 또한 NativeCanvas를 사용한다. 우리가 Canvas에서 drawRect 등을 사용해 도형을 그리면, 해당 함수는 Native Canvas에서 drawRect를 통해 도형을 그리는 것과 같은 동작을 하는 것이다. Compose Canvas의 한계 Compose Canvas는 Composable로 제공되는 Canvas에서 제공되는 API만을 사용할 수 있기 때문에, 기존 xml 기반의 Canvas에 비해 한정된 기능만을 제공한다. 이는 출시된지 얼마 되지 않은 Compose의 한계로, Compose에서는 종종 이..
clickable에서 클릭 효과 제거가 필요한 이유 clickable에서 다양한 클릭 효과를 만드는 것 또한 중요하지만, 클릭 효과를 제거하는 것도 종종 필요하다. 예를 들어 뒤로 가기 버튼을 눌렀을 때 클릭 효과가 없이 뒤로 가기가 되었으면 한다던가, 필터 버튼을 눌렀을 때 뒤에 클릭 효과가 생기지 않고 필터 버튼의 색상만 변해야 한다던가 하는 요구사항이 있을 수 있다. Compose의 clickable은 기본적으로 클릭 효과를 가지고 있기 때문에, 이러한 요구사항을 맞추기 위해서는 click 효과를 제거하는 것이 필요하다. clickable에서 클릭 효과 제거하기 clickable에서 클릭 효과를 제거하기 위해서는 파라미터가 6개인 clickable 함수를 사용해야 한다. fun Modifier.cl..
clickable의 기본 클릭 효과 살펴보기 이전 글에서 clickable의 기본 클릭 효과가 매우 어색한 것을 보았다. 이것이 왜 어색하게 느껴졌는지 구현체를 보면서 살펴보도록 하자. 만약 우리가 clickable { } 형태로 클릭 이벤트를 처리한다면 이 내부에서는 DefaultDebugIndication이란 클릭 효과를 사용한다. 그리고 이 클릭 효과는 아래와 같이 구현되어 있다. private object DefaultDebugIndication : Indication { private class DefaultDebugIndicationInstance( private val isPressed: State, private val isHovered: State, private val isFocused..
Dev.Cho
'분류 전체보기' 카테고리의 글 목록 (19 Page)