Animasyonlar, kullanıcıları uygulamanızda neler olup bittiği konusunda bilgilendiren görsel ipuçları ekleyebilir. Özellikle kullanıcı arayüzü durum değiştirdiğinde (ör. yeni içerik yüklendiğinde veya yeni işlemler kullanıma sunulduğunda) faydalıdır. Animasyonlar, uygulamanıza daha iyi bir görünüm kazandırarak kalite algısını artırır.
Android, istediğiniz animasyon türüne bağlı olarak farklı animasyon API'leri içerir. Bu dokümanda, kullanıcı arayüzünüze hareket eklemenin farklı yollarına genel bir bakış sunulmaktadır.
Animasyonları ne zaman kullanmanız gerektiğini daha iyi anlamak için hareketle ilgili Material Design kılavuzuna da göz atın.
Bit eşlemlere animasyon ekleme
1.şekil Animasyonlu bir çizilebilir öğe.
Simge veya resim gibi bir bit eşlem grafiğine animasyon eklemek için drawable animation API'lerini kullanın. Genellikle bu animasyonlar, çizilebilir bir kaynakla statik olarak tanımlanır ancak animasyon davranışını çalışma zamanında da tanımlayabilirsiniz.
Örneğin, iki işlemin ilişkili olduğunu kullanıcıya iletmenin iyi bir yolu, dokunulduğunda duraklatma düğmesine dönüşen bir oynatma düğmesini canlandırmaktır.
Daha fazla bilgi için Çekilebilir grafikleri canlandırma başlıklı makaleyi inceleyin.
Kullanıcı arayüzü görünürlüğünü ve hareketi canlandırma
Şekil 2. Bir iletişim kutusu göründüğünde ve kaybolduğunda gösterilen küçük animasyon, kullanıcı arayüzündeki değişikliği daha az rahatsız edici hale getirir.
Düzeninizdeki görünümlerin görünürlüğünü veya konumunu değiştirmeniz gerektiğinde, kullanıcının kullanıcı arayüzünün nasıl değiştiğini anlamasına yardımcı olmak için küçük animasyonlar eklemeniz önerilir.
Mevcut düzendeki görünümleri taşımak, göstermek veya gizlemek için Android 3.0 (API düzeyi 11) ve sonraki sürümlerde kullanılabilen android.animation
paketi tarafından sağlanan özellik animasyonu sistemini kullanabilirsiniz. Bu API'ler, View
nesnelerinizin özelliklerini belirli bir süre boyunca günceller ve özellikler değiştikçe görünümü sürekli olarak yeniden çizer. Örneğin, konum özelliklerini değiştirdiğinizde görünüm ekranda hareket eder. Alfa özelliğini değiştirdiğinizde görünüm belirginleşir veya kaybolur.
Bu animasyonları oluşturmanın en basit yolu için düzeninizde animasyonları etkinleştirin. Böylece bir görünümün görünürlüğünü değiştirdiğinizde animasyon otomatik olarak uygulanır. Daha fazla bilgi için Düzen güncellemelerini otomatik olarak canlandırma başlıklı makaleyi inceleyin.
Mülk animasyonu sistemini kullanarak nasıl animasyon oluşturacağınızı öğrenmek için Mülk animasyonuna genel bakış başlıklı makaleyi okuyun. Ayrıca, yaygın animasyonlar oluşturmak için aşağıdaki sayfalara da göz atabilirsiniz:
Fiziğe dayalı hareket
3.Şekil ObjectAnimator ile oluşturulan animasyon.
Şekil 4. Fizik tabanlı API'lerle oluşturulan animasyon.
Mümkün olduğunda animasyonlarınıza gerçek dünyadaki fizik kurallarını uygulayarak doğal görünmelerini sağlayın. Örneğin, hedefleri değiştiğinde ivmeyi korumalı ve değişiklikler sırasında sorunsuz geçişler yapmalıdırlar.
Android Destek Kitaplığı, bu davranışları sağlamak için animasyonlarınızın nasıl gerçekleşeceğini kontrol etmek üzere fizik yasalarına dayanan fizik tabanlı animasyon API'leri içerir.
Fizik kurallarına dayalı iki yaygın animasyon türü şunlardır:
ObjectAnimator
API'leri ile oluşturulanlar gibi fizik kurallarına dayanmayan animasyonlar oldukça statiktir ve sabit bir süreye sahiptir. Hedef değer değişirse hedef değerin değiştiği sırada animasyonu iptal etmeniz, animasyonu yeni başlangıç değeri olarak yeni bir değerle yeniden yapılandırmanız ve yeni hedef değeri eklemeniz gerekir. Bu işlem, Şekil 3'te gösterildiği gibi, animasyonda görsel olarak ani bir duraklama ve ardından kopuk bir hareket oluşturur.
DynamicAnimation
gibi fizik tabanlı animasyon API'leriyle oluşturulan animasyonlar, kuvvetle çalışır. Hedef değerdeki değişiklik, kuvvette değişikliğe neden olur. Yeni kuvvet, mevcut hıza uygulanır ve bu da yeni hedefe sürekli bir geçiş sağlar. Bu işlem, Şekil 4'te gösterildiği gibi daha doğal görünümlü bir animasyonla sonuçlanır.
Düzen değişikliklerini canlandırma
5.şekil Daha fazla ayrıntı göstermek için düzeni değiştirebilir veya yeni bir etkinlik başlatabilirsiniz.
Android 4.4 (API düzeyi 19) ve sonraki sürümlerde, mevcut etkinlik veya parçadaki düzeni değiştirdiğinizde animasyonlar oluşturmak için geçiş çerçevesini kullanabilirsiniz. Tek yapmanız gereken başlangıç ve bitiş düzenini ve kullanmak istediğiniz animasyon türünü belirtmektir. Ardından sistem, iki düzen arasında bir animasyon oluşturup yürütür. Bunu, kullanıcı arayüzünün tamamını değiştirmek veya yalnızca bazı görünümleri taşımak ya da değiştirmek için kullanabilirsiniz.
Örneğin, kullanıcı daha fazla bilgi görmek için bir öğeye dokunduğunda düzeni öğe ayrıntılarıyla değiştirebilir ve Şekil 5'te gösterilene benzer bir geçiş uygulayabilirsiniz.
Başlangıç ve bitiş düzenleri Scene
içinde saklanır. Başlangıç sahnesi genellikle mevcut düzenden otomatik olarak belirlenir. Sisteme istediğiniz animasyon türünü bildirmek için Transition
oluşturursunuz, ardından TransitionManager.go()
çağrısı yaparsınız ve sistem, düzenleri değiştirmek için animasyonu çalıştırır.
Daha fazla bilgi için Düzen değişikliklerini geçiş kullanarak canlandırma başlıklı makaleyi inceleyin. Örnek kod için BasicTransition öğesine göz atın.
Etkinlikler arasında animasyon ekleme
Android 5.0 (API düzeyi 21) ve sonraki sürümlerde, etkinlikleriniz arasında geçiş yapan animasyonlar da oluşturabilirsiniz. Bu, önceki bölümde açıklanan geçiş çerçevesine dayanır ancak ayrı etkinliklerdeki düzenler arasında animasyonlar oluşturmanıza olanak tanır.
Yeni etkinliği yandan kaydırma veya soldurma gibi basit animasyonlar uygulayabilirsiniz. Ayrıca her etkinlikteki paylaşılan görünümler arasında geçiş yapan animasyonlar da oluşturabilirsiniz. Örneğin, kullanıcı daha fazla bilgi görmek için bir öğeye dokunduğunda, şekil 5'te gösterilen animasyon gibi, öğeyi sorunsuz bir şekilde büyüterek ekranı dolduran bir animasyonla yeni bir etkinliğe geçiş yapabilirsiniz.
Her zamanki gibi startActivity()
'ı ararsınız ancak ActivityOptions.makeSceneTransitionAnimation()
tarafından sağlanan bir seçenek paketi iletirsiniz.
Bu seçenek paketi, animasyon sırasında geçiş çerçevesinin bağlayabilmesi için etkinlikler arasında hangi görünümlerin paylaşıldığını içerebilir.
Ek kaynaklar için: