'스케일'에 해당되는 글 1건

  1. 2020.05.08 Android Animation scale

scale: 뷰의 크기을 조절하여 심장이 뛰는 것처럼 커졌다  작아졌다하는 것과 같은 효과를 낼 수 있다.

android:duration 은 애니메이션 적용시간이며, 밀리세컨드 단위이다.
android:fromXScale 은 X축의 시작시점 크기이다.
android:fromYScale 은 Y축의 시작시점 크기이다.
android:pivotX 은 X축 중심점 좌표이다.
android:pivotY 은 Y축 중심점 좌표이다.
android:toXScale 은 X축의 종료시점 크기이다.
android:toYScale 은 Y축의 종료시점 크기이다.

 

X축는 수평방향, Y축는 수직방향이다.

1.0은 변경이 없다는 의미이다.

 

res/anim 폴더에 bounce_circle.xml 로 아래와 같이 작성한다.

<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="500"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="0.6"
    android:toYScale="0.6" />

 

위에서 작성한 애니메이션을 적용해 반복해서 바운스 효과를 내는 코드

val aniBounce = AnimationUtils.loadAnimation(mContext, R.anim.bounce_circle)
val interpolator = BounceInterpolator()
aniBounce.interpolator = interpolator
aniBounce.repeatCount = Animation.INFINITE
aniBounce.repeatMode = Animation.REVERSE
        
imgCircleBounce.startAnimation(aniBounce)

interpolator: 애니메이션 효과를 가속하거나 감속 또는 반복하는등 여러가지 효과를 낼 수 있다. BounceInterpolator를 주어서 심장이 뛰는 것과 같은 효과를 주었다.

참고: https://developer.android.com/guide/topics/resources/animation-resource#Interpolators

 

애니메이션 리소스  |  Android 개발자  |  Android Developers

애니메이션 리소스는 다음 두 가지 유형의 애니메이션 중 하나를 정의할 수 있습니다. 속성 애니메이션 설정된 시간 경과에 따른 객체의 속성 값을 Animator로 수정하여 애니메이션을 만듭니다. ��

developer.android.com

repeatCount는 반복회수인데 Animation.INFINITE(-1)로 설정하면 무한 반복이다. 또는 양의 정수로 설정한다. 0은 반복없음으로 한번 효과를 내고 끝나며, 1은 효과를 한번더 반복하는 것이다.

repeatMode는 repeatCount가 INFINITE여야 한다. 반복할때 애니메이션을 역방향으로 적용하려면 REVERSE를, 처음 위치부터 다시 적용하려면 RESTART를 적용한다.

fillAfter: 애니메이션 종료후에 상태를 설정한다. true는 종료후에 변형을 유지한다. false는 종료후에 변형을 유지하지 않고  원래대로 복원한다.

fillBefore: 애니메이션 시작전에 상태를 설정한다. true는 시작전에 변형을 적용한다. false는 시작전에 변형을 적용하지 않는다.

 

translate : https://lumasca.tistory.com/609

 

 

 

'개발 > Android' 카테고리의 다른 글

Android Studio Firebase Crashlytics 설정  (0) 2020.05.13
반원(half circle) xml  (0) 2020.05.11
Android Animation translate  (0) 2020.05.08
google service 빌드 오류  (0) 2020.05.04
오류: Cannot inline bytecode built with JVM target 1.8 ..  (0) 2020.01.07
Posted by Lumasca
,