diff --git a/app/src/main/java/com/gamedog/vididin/widget/AnimImageView.kt b/app/src/main/java/com/gamedog/vididin/widget/AnimImageView.kt new file mode 100644 index 0000000..fd9e58e --- /dev/null +++ b/app/src/main/java/com/gamedog/vididin/widget/AnimImageView.kt @@ -0,0 +1,63 @@ +package com.gamedog.vididin.widget + + +import android.animation.AnimatorSet +import android.animation.ObjectAnimator +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.animation.AnimationSet +import android.widget.LinearLayout +import com.ama.core.architecture.util.ResUtil.dp +import com.vididin.real.money.game.databinding.LayoutAnimImageviewBinding +import kotlin.math.min + + +class AnimImageView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : LinearLayout(context, attrs, defStyleAttr) { + private var mBinding: LayoutAnimImageviewBinding + private val animationFraction = 0.2f + private var animatorSet: AnimatorSet = AnimatorSet() + + init { + mBinding = LayoutAnimImageviewBinding.inflate(LayoutInflater.from(context), this, true) + startAnim() + } + + + + private fun startAnim() { + with(mBinding) { + // 1. move distance + /*val moveDistanceX = -min(ivImage.width, ivImage.height) * animationFraction + val moveDistanceY = -min(ivImage.width, ivImage.height) * animationFraction*/ + val moveDistanceX = -20.dp + val moveDistanceY = -20.dp + + // 2. x and y + val animatorX = ObjectAnimator.ofFloat(ivImage, "translationX", 0f, moveDistanceX.toFloat()) + val animatorY = ObjectAnimator.ofFloat(ivImage, "translationY", 0f, moveDistanceY.toFloat()) + animatorX.repeatMode = ObjectAnimator.REVERSE + animatorX.repeatCount = ObjectAnimator.INFINITE + animatorY.repeatMode = ObjectAnimator.REVERSE + animatorY.repeatCount = ObjectAnimator.INFINITE + + // 3. set + animatorSet.playTogether(animatorX, animatorY) + animatorSet.duration = 600 + + animatorSet.start() + } + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + animatorSet.cancel() + } + +} + + diff --git a/app/src/main/res/layout/guide_step_cash.xml b/app/src/main/res/layout/guide_step_cash.xml index 57b12e1..2289a38 100644 --- a/app/src/main/res/layout/guide_step_cash.xml +++ b/app/src/main/res/layout/guide_step_cash.xml @@ -1,9 +1,10 @@ + android:layout_height="wrap_content" + android:clipChildren="false"> - + android:layout_height="wrap_content" + android:clipChildren="false"> - - - + android:layout_gravity="right" + android:layout_marginStart="100dp" /> + + + + + \ No newline at end of file