[Android] 수제 ImageViewer(feat. Coil) (Compose)
·
Android
먼저, 이미지를 로딩하는 라이브러리로는 🔗Coil을 사용했다.implementation("io.coil-kt.coil3:coil-compose:{latest version}")implementation("io.coil-kt.coil3:coil-network-okhttp:{latest version}")ImageViewer의 기능은 다음과 같다.이미지를 표시두 손가락으로 확대/축소1배수 미만으로 축소하면 손가락을 뗐을때 1배수크기/정위치로 원복확대한 상태에서 이미지 위치를 이동확대한 상태에서 이미지 위치를 이동하고 손을 뗐을 때, 화면 가장자리에서 이미지가 떨어지면 위치를 되돌림더블 탭 하면 이미지를 1배수크기/정위치로 원복확대 후 이미지 이동 시, 이미지가 화면 밖을 넘어가지 않도록 함import ..
[Android] Compose TextField 커스텀
·
Android
만들고 싶었던 것MaterialDesign이 적용되지 않은 `TextField`width가 입력되어있는 텍스트 길이 만큼 wrapCotent할 것Placeholder 표시결과는 아래와 같다. 붉은 글씨 부분이 placeholder를 표시하고있는 `TextField`임구현 과정1. MaterialDesign이 없는 TextField일반적인 `TextField` 컴포저블을 사용하면 MaterialDesign을 피할 수 없기 때문에, 아무 디자인도 적용되지 않은 `BasicTextField`를 사용해야 한다.BasicTextField( value = text, onValueChange = { onTextChange(it) }, ...)호출하면 기본 width를 가지는 텅빈 `TextF..
[Android] LazyColumn안에 LazyVerticalGrid 넣기(nested scroll)
·
Android
전제 조건LazyColumn안에 LazyVerticalGrid가 들어감LazyVerticalGrid의 정확한 height는 몰라도 예상하는 최대 height 값이 있어야 함최대 height값을 어떻게든 지정할 수 없다면 이 방법은 사용할 수 없습니다.. 본인은 화면 중간에 LazyVerticalGrid가 들어가고, 표시해야 하는 데이터의 최대 개수가 정해져 있었기 때문에 해당 방법이 가능했다. 방법 거창한건 아니고... LazyColumn 안에 height가 지정되지 않은 LazyVerticalGrid를 집어넣게 되면 height를 제대로 측정하지 못해서 넣을 수가 없는 것이기 때문에 최대 height라도 지정을 해주면 정상적으로 동작한다.LazyColumn( modifier = Modif..