Android Animation Framework: Smooth Geçişler İçin Pratik Kodlar

Android'de kullanıcı arayüzünü canlı tutmanın en basit yolu animasyondur. View'ları hareket ettirmek, renk değiştirmek ya da boyutlarını değiştirmek için Animation Framework'ü kullanabilirsin.

En yaygın yöntem ObjectAnimator'dür. Bir View'ın özelliğini belirli bir sürede değiştirir ve düzgün bir geçiş sağlar.

1import android.animation.ObjectAnimator
2import android.widget.TextView
3
4val textView = findViewById<TextView>(R.id.myText)
5
6// TextView'ı sağa 500 piksel hareket ettir, 1 saniyede
7val animator = ObjectAnimator.ofFloat(textView, "translationX", 0f, 500f)
8animator.duration = 1000 // milisaniye
9animator.start()

Beklenen çıktı: TextView ekranın sağına doğru yumuşak şekilde kaydığını görürsün.

Birden fazla özelliği aynı anda değiştirmek istersen AnimatorSet kullan:

1import android.animation.AnimatorSet
2
3val scaleX = ObjectAnimator.ofFloat(textView, "scaleX", 1f, 1.5f)
4val scaleY = ObjectAnimator.ofFloat(textView, "scaleY", 1f, 1.5f)
5val alpha = ObjectAnimator.ofFloat(textView, "alpha", 1f, 0.5f)
6
7val set = AnimatorSet()
8set.playTogether(scaleX, scaleY, alpha) // hepsi aynı anda
9set.duration = 800
10set.start()

Beklenen çıktı: TextView 0.8 saniyede büyür, şeffaf hale gelir.

Animasyonlar ardı ardına çalışmasını istersen playSequentially() kullan:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1val set = AnimatorSet()
2set.playSequentially(scaleX, scaleY, alpha)
3set.start()

Interpolator ekleyerek animasyon hızını kontrol edebilirsin. Varsayılan lineer hızdır; AccelerateDecelerateInterpolator daha doğal görünür:

1import android.view.animation.AccelerateDecelerateInterpolator
2
3val animator = ObjectAnimator.ofFloat(textView, "translationY", 0f, 200f)
4animator.duration = 1000
5animator.interpolator = AccelerateDecelerateInterpolator()
6animator.start()

Beklenen çıktı: View aşağıya doğru hızlanarak hareket eder, sonra yavaşlar.

Sık yapılan hata: AnimatorListener eklemeyi unutmak. Animasyon bittiğinde bir işlem yapmak istiyorsan dinleyici ekle:

1animator.addListener(object: android.animation.Animator.AnimatorListener {
2override fun onAnimationStart(animation: android.animation.Animator) {}
3override fun onAnimationEnd(animation: android.animation.Animator) {
4textView.text = "Bitti!"
5}
6override fun onAnimationCancel(animation: android.animation.Animator) {}
7override fun onAnimationRepeat(animation: android.animation.Animator) {}
8})

Animasyonu tekrar ettirmek için repeatCount ve repeatMode ayarla:

1animator.repeatCount = 3 // 3 kez tekrar et
2animator.repeatMode = ObjectAnimator.REVERSE // geri dönsün
3animator.start()

Animation Framework, basit geçişlerden karmaşık sekanslara kadar her şeyi kapsıyor. ObjectAnimator ile başla, ardından AnimatorSet ile birleştir.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz