﻿ Yazilimdersi.info | Android'de animasyonlu geçişlerin ayarlanması
May 04, 2017 Mustafa Çelik Yorum bulunmamaktadır
Android uygulamalarda animasyonlu ekran geçişleri uygulamanızın daha cool gözükmesini sağlamaktadır. Ayrıca daha profesyonel bir arayüz imkanı da sunmaktadır. Bu amaçla aşağıda örneği verilen iki farklı Activity arasında gerçekleştirilen soldan - sağa ve sağdan sola ekran geçişlerinin nasıl gerçekleştirildiği ile alakalı bu yazımızı sizlerle paylaşıyoruz. Ekran geçişlerinde pozitif ve negatif yönde her iki geçişin ayarlanması gerekmektedir. Yani ekrana sağdan animasyonla gelen Activity veya Dialog un ekrandan ayrılırken tersine animasyonla çalıştırılması gerekmektedir.
Aşağıdaki kod parçacıkları ile sizlere Android uygulamada animasyonlu geçişlerin nasıl gerçekleştirildiğini detaylı şekilde anlatacağız. Aşağıdaki dosyalar res dizini altında anim klasörü oluşturularak içerisine kopyalanmalıdır.
Ekran geçişini sola doğru gerçekleştirmede kullanılan animasyon kodu
Ekran geçişini sağa doğru gerçekleştirmede kullanılan animasyon kodu
Soldan ekrana geçişte kullanılan animasyon kodu
Sağdan ekrana geçişte kullanılan animasyon kodu
Animasyon süresini ayarlamada kullanılan integers.xml verisi aşağıdaki şekilde ayarlanmaktadır.
slide_animation_duration verisinin integers.xml üzerinden tanımlanıp diğer tüm animasyon dosyalarında kullanılması, animasyonlar arasındaki tutarlılığı korumaya yardımcı olur ve hepsinin aynı hızda hareket etmesini sağlar.
1. Activityler arası animasyonlu geçiş:
Yeni activitylerin çağrılmasında startActivity() veya startActivityForResult() komutları kullanılmaktadır. Activity nin animasyonlu gerçekleştirilmesinde overridePendingTransition() komutu kullanılmaktadır.
Intent intent = new Intent(this, IkinciActivity.class);
Geri butonuna basıldığında ise onBackPressed() fonksiyonu içerisinde overridePendingTransition() metodu tersi yönde hareket edecek şekilde ayarlanmalıdır.
2. Viewler arası animasyonlu geçiş:
Viewler arasında animasyonlu geçiş için startAnimation() metodu kullanılmaktadır.