안드로이드 Kotlin 컨페티 사용하기

Jiyoon Chae·2021년 7월 28일
0

안드로이드

목록 보기
7/23

→ gradle 추가하고, import해서 (선언하고) 쓰라는대로 샘플코드 복사해서 사용하면됨.

→ 커스텀 할 수 있는 거는 컨페티 색깔!! 자유롭게 설정하고 여러개로 늘릴 수도 있음.

  • 이슈 발생

: 문제는 컨페티 떨어지는 위치가 왼쪽 모서리에서 시작해서 예쁘지도 않고, 수도꼭지에서 물나오듯 했음.

중간에 옵션 중 setDirection() 랑 setPosition()을 조정하면 될 거 같아서 값을 계속 바꾸고 +값 -값 주고 별 걸 다해봤는데도 안됐음.

stackoverflow에 나처럼 답답해하는 몇몇 질문을 봄 ㅋㅋ다들 left corner에서 떨어진다며 why my konfetti어쩌고 이럼서 답답해하고있음ㅋㅋㅋ 개웃김 ㅋㅋ

  • 해결!!!! 해결했다구우!!🤩

setPosition에서 뷰의 width 값을 얻어오는 코드가 잘못된 건지 DisplayMetrics를 사용하니까 예쁘게 위쪽 전체에서 떨어지게 됐음!

구세주 같은 답변!!

https://stackoverflow.com/questions/62046122/placing-confetti-to-fall-from-top-instead-of-top-left-only

private fun palyKonfetti() {
        val konfetti = findViewById<KonfettiView>(R.id.challenge_viewKonfetti)
        val display = DisplayMetrics()
        windowManager.defaultDisplay.getMetrics(display)
        konfetti.build()
            .addColors(this.resources.getColor(R.color.confetti_pink), this.resources.getColor(R.color.confetti_purple),
                this.resources.getColor(R.color.confetti_yellow), this.resources.getColor(R.color.confetti_blue), this.resources.getColor(R.color.white))
            .setDirection(-0.0, -999.0)
            .setSpeed(1f, 4f)
            .setFadeOutEnabled(true)
            .setTimeToLive(2000L)
            .addShapes(Shape.Square, Shape.Circle)
            .addSizes(Size(7))
            .setPosition(-50f,display.widthPixels +50f, -50f,-50f)
            .streamFor(300, 3000L)
    }
  • DisplayMetrics 란??

android.util.DisplayMetrics

A structure describing general information about a display, such as its size, density, and font scaling.

크기, 밀도, 글꼴 크기와 같은 디스플레이에 대한 일반 정보를 설명하는 구조.

To access the DisplayMetrics members, retrieve display metrics like this:

DisplayMetrics 구성원에 액세스하려면 다음과 같은 디스플레이 측정 항목을 검색하세요.

context.getResources().getDisplayMetrics();
profile
바닐라라떼 좋아☕

0개의 댓글