Animasyonlara giriş

"Oluştur" yöntemini deneyin
Jetpack Compose, Android için önerilen kullanıcı arayüzü araç setidir. Oluşturma'da Animasyonları nasıl kullanacağınızı öğrenin.

Animasyonlar, kullanıcıları uygulamanızda neler olduğu konusunda bilgilendiren görsel ipuçları ekleyebilir. Bunlar, özellikle yeni içeriğin yüklenmesi veya yeni işlemlerin kullanılabilir olması gibi kullanıcı arayüzünün durumu değiştiğinde yararlıdır. Animasyonlar, uygulamanıza daha kaliteli bir görünüm ve tarz katarak uygulamanıza daha kaliteli bir görünüm ve tarz katar.

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 dair genel bir bakış sunulmaktadır.

Animasyonları ne zaman kullanmanız gerektiğini daha iyi anlamak için Hareketle ilgili Materyal Tasarım kılavuzuna da bakın.

Bit eşlemleri canlandırma

Şekil 1. Animasyonlu çizim.

Simge veya resim gibi bir bit eşlem grafiğine animasyon eklemek için çekilebilir animasyon API'lerini kullanın. Genellikle bu animasyonlar, çekilebilir bir kaynakla statik olarak tanımlanır ancak çalışma zamanında animasyon davranışını da tanımlayabilirsiniz.

Örneğin, kullanıcıya iki işlemin birbiriyle ilgili olduğunu bildirmenin iyi bir yolu, dokunduğunda duraklatma düğmesine dönüşen bir oynatma düğmesine animasyon eklemektir.

Daha fazla bilgi için Çekilebilir grafiklere animasyon ekleme bölümünü okuyun.

Kullanıcı arayüzü görünürlüğünü ve hareketini canlandır

Şekil 2. Bir iletişim kutusu görüntülenip kaybolduğunda görünen küçük bir animasyon, kullanıcı arayüzü değişikliğini 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 incelikli animasyonlar eklemek en iyisidir.

Geçerli düzen içinde görünümleri taşımak, ortaya çıkarmak veya gizlemek için Android 3.0 (API düzeyi 11) ve sonraki sürümlerde kullanılabilen android.animation paketinin sağladığı özellik animasyon sistemini kullanabilirsiniz. Bu API'ler, View nesnelerinizin özelliklerini belirli bir süre içinde güncelleyerek ö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 ekran boyunca hareket eder. Alfa özelliğini değiştirdiğinizde görünüm kararır.

Bu animasyonları oluşturmanın en basit yolu, düzeninizde animasyonları etkinleştirmektir. Böylece, bir görünümün görünürlüğünü değiştirdiğinizde otomatik olarak animasyon uygulanır. Daha fazla bilgi için Düzen güncellemelerini otomatik olarak canlandırma bölümüne bakın.

Mülk animasyon sistemini kullanarak animasyonların nasıl oluşturulacağını öğrenmek için Mülk animasyonuna genel bakış bölümünü okuyun. Sık kullanılan animasyonlar oluşturmak için aşağıdaki sayfaları da görebilirsiniz:

Fiziğe dayalı hareket

Şekil 3. ObjectAnimator ile oluşturulan animasyon.

4.Şekil Fiziğe dayalı API'lerle oluşturulmuş animasyon.

Mümkün olduğunda animasyonlarınıza gerçek dünya fiziği uygulayarak doğal görünmelerini sağlayın. Örneğin, hedefleri değiştiğinde ivmeyi koruması ve herhangi bir değişiklik sırasında sorunsuz geçişler yapması gerekir.

Bu davranışları sağlamak için Android Destek kitaplığı, animasyonlarınızın nasıl çalışacağını kontrol etmek için fizik yasalarına dayanan fiziğe dayalı animasyon API'leri içerir.

Yaygın olarak kullanılan fiziğe dayalı iki animasyon şunlardır:

Fiziğe dayalı olmayan animasyonlar (örneğin, ObjectAnimator API'leriyle oluşturulanlar) oldukça statiktir ve belirli bir süreye sahiptir. Hedef değeri değişirse hedef değeri değiştiğinde animasyonu iptal etmeniz, yeni başlangıç değeri olarak yeni bir değerle animasyonu yeniden yapılandırmanız ve yeni hedef değerini eklemeniz gerekir. Görsel olarak bu işlem, Şekil 3'te gösterildiği gibi animasyonda ani bir duraklama ve ardından kopuk bir hareket oluşturur.

DynamicAnimation gibi fiziğe dayalı animasyon API'leriyle oluşturulan animasyonlar güçle yönetilir. Hedef değerdeki değişiklik, değişikliğin uygulanmasına neden olur. Yeni güç, mevcut hıza uygulanır ve yeni hedefe sürekli bir geçiş sağlar. Bu işlem, Şekil 4'te gösterildiği gibi daha doğal görünen bir animasyonla sonuçlanır.

Düzen değişikliklerini canlandırma

5. Şekil. Düzen değiştirerek veya yeni bir etkinlik başlatarak daha fazla ayrıntı gösteren bir animasyon elde edilebilir.

Android 4.4 (API düzeyi 19) ve sonraki sürümlerde, geçerli etkinlik veya parça içinde düzeni değiştirdiğinizde animasyon 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. Daha sonra sistem bu iki düzen arasında bir animasyon belirler ve yürütür. Bunu kullanıcı arayüzünün tamamını 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üzeninin her biri Scene içinde depolanır. Bununla birlikte, başlangıç sahnesi genellikle geçerli düzene göre otomatik olarak belirlenir. Sisteme ne tür bir animasyon istediğinizi bildirmek için bir Transition oluşturur, ardından TransitionManager.go() komutunu çağırırsınız. Sistem, animasyonu çalıştırarak düzenleri değiştirir.

Daha fazla bilgi için Geçiş kullanarak düzen değişikliklerini canlandırma başlıklı makaleyi okuyun. Örnek kod için BasicTransition bölümüne bakın.

Etkinlikler arasında animasyon

Android 5.0 (API düzeyi 21) ve sonraki sürümlerde, etkinlikleriniz arasında geçiş yapan animasyonlar da oluşturabilirsiniz. Bu işlem, önceki bölümde açıklanan geçiş çerçevesine dayanır ancak ayrı etkinliklerde düzenler arasında animasyonlar oluşturmanıza olanak tanır.

Yeni etkinliği kenardan kaydırma veya soluklama gibi basit animasyonlar uygulayabilirsiniz. Bununla birlikte, her etkinlikte 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, öğeyi kesintisiz bir şekilde büyüterek Şekil 5'te gösterilen animasyona benzer şekilde büyüten bir animasyona sahip yeni bir etkinliğe geçiş yapabilirsiniz.

Her zaman olduğu gibi startActivity() numarasını ararsınız ancak ActivityOptions.makeSceneTransitionAnimation() tarafından sağlanan bir dizi seçenek iletilir. Bu seçenek paketi, etkinlikler arasında hangi görünümlerin paylaşıldığını içerebilir. Böylece geçiş çerçevesi, animasyon sırasında bunları birbirine bağlayabilir.

Ek kaynaklar için bkz: