VidiDin-Android/app/src/main/java/com/gamedog/vididin/widget/HomeDragIconView.kt

97 lines
2.4 KiB
Kotlin
Raw Normal View History

2025-11-18 05:30:49 +00:00
package com.gamedog.vididin.widget
2025-11-25 06:59:50 +00:00
import android.animation.Animator
import android.animation.AnimatorSet
import android.animation.ObjectAnimator
2025-11-18 05:30:49 +00:00
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.widget.LinearLayout
2025-11-25 06:59:50 +00:00
import androidx.core.view.isVisible
2025-12-23 08:30:59 +00:00
import com.ama.core.architecture.util.AndroidUtil
import com.vididin.real.money.game.R
2025-12-09 07:22:57 +00:00
import com.vididin.real.money.game.databinding.LayoutDragIconViewBinding
2025-11-18 05:30:49 +00:00
class HomeDragIconView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : LinearLayout(context, attrs, defStyleAttr) {
2025-11-25 06:59:50 +00:00
private var mBinding: LayoutDragIconViewBinding
2025-11-18 05:30:49 +00:00
init {
mBinding = LayoutDragIconViewBinding.inflate(LayoutInflater.from(context), this, true)
mBinding.progressContainer.setOnClickListener {
AndroidUtil.showTopToast(R.string.gold_not_ready_hint)
2025-11-18 05:30:49 +00:00
}
}
2025-11-25 06:59:50 +00:00
2025-11-28 10:07:11 +00:00
fun showRewardGoldAnim() {
2025-11-25 06:59:50 +00:00
val animView = mBinding.llGoldRoot
val alphaAnimator = ObjectAnimator.ofFloat(
animView,
"alpha",
2025-11-28 10:07:11 +00:00
0.5f, 1.0f
2025-11-25 06:59:50 +00:00
).apply {
2025-11-28 10:07:11 +00:00
duration = 1500
2025-11-25 06:59:50 +00:00
}
val scaleXAnimator = ObjectAnimator.ofFloat(
animView,
"scaleX",
2025-11-28 10:07:11 +00:00
0.5f, 1.1f, 1F
2025-11-25 06:59:50 +00:00
).apply {
2025-11-28 10:07:11 +00:00
duration = 1500
2025-11-25 06:59:50 +00:00
}
val scaleYAnimator = ObjectAnimator.ofFloat(
animView,
"scaleY",
2025-11-28 10:07:11 +00:00
0.5f, 1.1f, 1F
2025-11-25 06:59:50 +00:00
).apply {
2025-11-28 10:07:11 +00:00
duration = 1500
2025-11-25 06:59:50 +00:00
}
val animatorSet = AnimatorSet()
animatorSet.playTogether(alphaAnimator, scaleXAnimator, scaleYAnimator)
animatorSet.addListener(object : Animator.AnimatorListener {
override fun onAnimationCancel(animation: Animator) {
2025-11-28 10:07:11 +00:00
postDelayed({
animView.visibility = INVISIBLE
}, 1000)
2025-11-25 06:59:50 +00:00
}
override fun onAnimationEnd(animation: Animator) {
2025-11-28 10:07:11 +00:00
postDelayed({
animView.visibility = INVISIBLE
}, 1000)
2025-11-25 06:59:50 +00:00
}
override fun onAnimationRepeat(animation: Animator) {
}
override fun onAnimationStart(animation: Animator) {
2025-11-28 10:07:11 +00:00
animView.isVisible = true
2025-11-25 06:59:50 +00:00
}
})
animatorSet.start()
}
2025-11-28 10:07:11 +00:00
fun setProgress(progress: Long) {
mBinding.progressBar.setProgress(progress.toInt())
}
2025-11-18 05:30:49 +00:00
}