[android] CardView와 모션 이펙트 처리
안녕하세요! 오늘은 안드로이드 앱에서 CardView를 사용하여 모션 이펙트를 처리하는 방법에 대해 알아보겠습니다.
CardView란 무엇인가요?
먼저, CardView는 안드로이드 지원 라이브러리에서 제공하는 UI 컴포넌트 중 하나로, 그림자와 간단한 모서리 둥글게 효과가 적용된 카드 형식의 뷰를 만들 수 있습니다. 이를 통해 앱의 디자인을 향상시킬 수 있습니다.
CardView 추가하기
CardView를 사용하기 위해서는 먼저 앱의 build.gradle 파일에 다음 의존성을 추가해야 합니다.
implementation 'androidx.cardview:cardview:1.0.0'
의존성을 추가한 후, 레이아웃 XML 파일에서 CardView를 추가하고 내부에 원하는 UI를 배치할 수 있습니다.
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="8dp"
app:cardElevation="4dp">
<!-- 내부 뷰 배치 -->
</androidx.cardview.widget.CardView>
위와 같이 CardView를 추가하고 내부에 다양한 뷰를 배치할 수 있습니다.
모션 이펙트 처리
CardView에 모션 이펙트를 처리하기 위해서는 터치 이벤트를 처리하고, 애니메이션을 추가할 수 있습니다. 예를 들어, 사용자가 CardView를 터치할 때 그림자를 변경하고 약간의 이동 애니메이션을 추가할 수 있습니다.
cardView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// 그림자 변화
cardView.setCardElevation(8dp);
return true;
case MotionEvent.ACTION_UP:
// 그림자 원래대로
cardView.setCardElevation(4dp);
// 애니메이션 추가
ObjectAnimator animator = ObjectAnimator.ofFloat(cardView, "translationZ", 0);
animator.setDuration(100);
animator.start();
return true;
}
return false;
}
});
위 코드는 CardView에 터치 이벤트를 처리하고, ACTION_DOWN 이벤트 발생 시 그림자를 변경하고, ACTION_UP 이벤트 발생 시 그림자를 원래대로 돌리고 이동 애니메이션을 추가하는 예시입니다.
이렇게 CardView와 모션 이펙트를 함께 사용하여 앱의 UI를 더욱 동적이고 멋지게 만들 수 있습니다.
안드로이드 앱 개발자라면 CardView를 활용하여 직관적이고 아름다운 UI를 구현할 수 있을 것입니다.
참고문헌:
- https://developer.android.com/guide/topics/ui/layout/cardview
- https://developer.android.com/guide/topics/ui/look-and-feel/shadows