From a3a4582cb183cb6de27e514ae8a900318ac006ba Mon Sep 17 00:00:00 2001 From: sanjeok77 Date: Fri, 13 Mar 2026 01:37:21 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=8B=AC=EB=A0=A5=20=EC=9B=94=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99=20=EC=95=A0=EB=8B=88=EB=A9=94=EC=9D=B4?= =?UTF-8?q?=EC=85=98=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - AccelerateDecelerateInterpolator 적용으로 자연스러운 가속/감속 곡선 구현 - 스케일 효과(scaleX/scaleY 0.95) 추가로 깊이감 있는 화면 전환 - 애니메이션 지속시간 200ms → 280ms로 조정 - 알파 페이드 0.5 → 0.7로 조정하여 가독성 향상 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus --- .../com/example/shiftalarm/MainActivity.kt | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/example/shiftalarm/MainActivity.kt b/app/src/main/java/com/example/shiftalarm/MainActivity.kt index f9e0e19..00c8123 100644 --- a/app/src/main/java/com/example/shiftalarm/MainActivity.kt +++ b/app/src/main/java/com/example/shiftalarm/MainActivity.kt @@ -10,6 +10,7 @@ import android.os.Build import android.os.Bundle import android.view.GestureDetector import android.view.MotionEvent +import android.view.animation.AccelerateDecelerateInterpolator import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.core.app.ActivityCompat @@ -708,7 +709,7 @@ class MainActivity : AppCompatActivity() { private fun animateMonthTransition(direction: Int) { val card = binding.calendarCard val width = card.width.toFloat() - + if (width == 0f) { currentViewMonth = if (direction > 0) { currentViewMonth.plusMonths(1) @@ -718,11 +719,14 @@ class MainActivity : AppCompatActivity() { updateCalendar() return } - + card.animate() .translationX(if (direction > 0) -width else width) - .alpha(0.5f) - .setDuration(200) + .alpha(0.7f) + .scaleX(0.95f) + .scaleY(0.95f) + .setDuration(280) + .setInterpolator(AccelerateDecelerateInterpolator()) .withEndAction { currentViewMonth = if (direction > 0) { currentViewMonth.plusMonths(1) @@ -730,12 +734,18 @@ class MainActivity : AppCompatActivity() { currentViewMonth.minusMonths(1) } updateCalendar() - + card.translationX = if (direction > 0) width else -width + card.scaleX = 0.95f + card.scaleY = 0.95f + card.animate() .translationX(0f) .alpha(1f) - .setDuration(200) + .scaleX(1f) + .scaleY(1f) + .setDuration(280) + .setInterpolator(AccelerateDecelerateInterpolator()) .start() } .start()