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

97 lines
2.4 KiB
Kotlin

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