UI의 꽃은 애니메이션이라고 생각하기 때문에 찾아보던 도중에 snow fall이라는 라이브러리를 찾았네요
출처-링크
dependencyResolutionManagement {
repositories {
maven { url "https://jitpack.io" }
}
}
implementation 'com.github.jetradarmobile:android-snowfall:1.2.1'
<com.jetradarmobile.snowfall.SnowfallView
android:layout_width="match_parent"
android:layout_height="match_parent"/>
이 코드는 기본 코드입니다. layout 파일에 추가하시면 사용하실 수 있습니다
<com.jetradarmobile.snowfall.SnowfallView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:snowflakesNum="250"
app:snowflakeAlphaMin="150"
app:snowflakeAlphaMax="255"
app:snowflakeAngleMax="5"
app:snowflakeSizeMin="8dp"
app:snowflakeSizeMax="32dp"
app:snowflakeSpeedMin="4"
app:snowflakeSpeedMax="12"
app:snowflakesFadingEnabled="true"
app:snowflakesAlreadyFalling="false"
app:snowflakeImage="@drawable/snowflake"/>
굉장히 복잡해 보이지만 제가 설명 해드리도록 하겠습니다!
그리고 설명은 제 추측 이므로 정확하지 않을 수도 있습니다.
app:snowflakesNum="250"
이 코드는 떨어지는 갯수를 설정해주는 코드입니다
app:snowflakeAlphaMin="150"
app:snowflakeAlphaMax="255"
이 코드는 희미함을 표시하는 코드입니다.
첫번째 줄은 최소 희미함, 두번쨰 줄은 최대 희미함을 설정해주는 코드입니다.
app:snowflakeAngleMax="5"
이 코드는 휘는 각도를 설정해주는 코드 입니다. 5를 설정해주시면 직선으로 떨어지네요
app:snowflakeSizeMin="8dp"
app:snowflakeSizeMax="32dp"
이 코드는 최소 사이즈, 최대 사이즈를 설정 해주는 코드입니다.
app:snowflakeSpeedMin="4"
app:snowflakeSpeedMax="12"
대부분 코드 성질이 비슷한데요 이것 또한 최소, 최대 속도에 대한 코드를 설정해주는 것입니다.
app:snowflakesFadingEnabled="true"
이 코드는 끝부분에서 사라지는 애니메이션을 할지 말지 넣는 코드입니다.
app:snowflakesAlreadyFalling="false"
이 코드는 시작 할 때부터 떨어질지 말지 선택하는 코드입니다.
app:snowflakeImage="@drawable/snowflake"
이 코드는 떨어지는 사진을 설정 할수 있고 만약 설정을 안하면 기본 하얀 눈이 떨어집니다.
코틀린 코드에는 두가지가 있습니다. 멈추는 코드와 다시 재시작하는 코드가 있습니다.
snowFall.stopFalling()
snowFall.restartFalling()
이 글이 도움이 됐으면 좋겠네요. 감사합니다!