Android

시작점과 현재 기준점을 연결하지 않았을 경우의 문제 아래의 Path를 보자. 아래 Path의 마지막 줄의 lineTo 함수는 이전 기준점인 (300, 100)와 (100, 100)을 잇는 직선을 생성한다. val path = Path().apply { moveTo(100.dp.toPx(), 100.dp.toPx()) // 시작 지점 (100, 100) lineTo(100.dp.toPx(), 300.dp.toPx()) lineTo(300.dp.toPx(), 300.dp.toPx()) lineTo(300.dp.toPx(), 100.dp.toPx()) lineTo(100.dp.toPx(), 100.dp.toPx()) // (300, 100)과 (100, 100)을 잇는 직선 생성 } 이 Path는 정상적으로 ..
· 오픈소스
Filled Slider 란? 이번에 Compose용 Filled Slider 라이브러리를 배포했다. Filled Slider은 볼륨 컨트롤이나 밝기 제어 등에 사용할 수 있는 채워지는 형태의 슬라이더 입니다. Filled Slider 라이브러리에서 제공하는 슬라이더는 가로 모드 세로 모드, 슬라이더 모양 설정, Continuous Discrete, 터치 민감도 설정 등 많은 기능들을 지원한다. GitHub : https://github.com/seyoungcho2/FilledSliderCompose GitHub - seyoungcho2/FilledSliderCompose: Provides Filled Slider for Jetpack Compose Provides Filled Slider for Jet..
rotateRad 사용해 Canvas 회전시키기 Canvas에서 특정 도형을 회전시키기 위해서는 rotateRad 함수를 사용하면 된다. inline fun DrawScope.rotateRad( radians: Float, pivot: Offset = center, block: DrawScope.() -> Unit ) { withTransform({ rotate(degrees(radians), pivot) }, block) } rotateRad는 인자로 radians를 받아 회전 각도를 결정하며 pivot은 회전 중심점이다. block에는 회전 시킬 도형이나 텍스트를 넣으면 된다. 자 각각에 대해 알아보자. radians: 회전 시킬 각도를 결정 일반적으로 우리는 '도'라 불리는 단위로 회전 각도를 결정..
직선의 구성 직선은 시작점과 끝점 그리고 선의 굵기로 이루어진다. Compose의 Canvas에서도 같은 방식으로 직선이 그려진다. 자 어떻게 Canvas에서 직선을 그릴 수 있는지 살펴보도록 하자. drawLine 함수 Canvas에서는 drawLine 함수를 사용해 직선을 그릴 수 있다. fun drawLine( color: Color, start: Offset, end: Offset, strokeWidth: Float = Stroke.HairlineWidth, cap: StrokeCap = Stroke.DefaultCap, pathEffect: PathEffect? = null, /*FloatRange(from = 0.0, to = 1.0)*/ alpha: Float = 1.0f, colorFilt..
Android에서 Canvas가 필요한 이유 Canvas는 Android에서 Custom UI를 간편하게 그리기 위한 다양한 API를 제공해준다. Canvas에서 제공해주는 API를 사용하면 도형, 텍스트를 그릴 수 있고, 애니메이션 또한 만들 수 있다. 또한 Canvas는 그려야 할 도형들이 많을 때, Composable 여러개를 사용해 그리는 것에 비해 자원을 효율적으로 사용한다. 이 때문에 만약 화면이 여러 도형으로 구성되어있고, 도형의 상태(크기, 색상 등)을 계속해서 변경시켜야 하는 작업에서는 Canvas를 사용하는 것이 훨씬 리소스를 적게 사용한다. 이번 글에서는 Jetpack Compose에서 Canvas를 사용하는 간단한 방법에 대해 살펴볼 것이다. Jetpack Compose에서 Canv..
Dev.Cho
'Android' 태그의 글 목록 (4 Page)