Animasyonlara giriş

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

Animasyonlar, kullanıcıları uygulamanızda neler olup bittiği konusunda bilgilendiren görsel işaretler ekleyebilir. Bunlar, özellikle yeni içeriğin yüklenmesi veya yeni işlemler kullanılabilir hale gelmesi gibi, kullanıcı arayüzünün durum değişikliği olduğunda kullanışlıdır. Ayrıca animasyonlar uygulamanıza şık bir görünüm katarak uygulamanızın daha kaliteli bir görünüm ve tarza sahip olmasını sağlar.

Android, ne tür bir animasyon istediğinize bağlı olarak farklı animasyon API'leri içerir. Bu dokümanlar, kullanıcı arayüzünüze hareket eklemek için kullanabileceğiniz farklı yöntemlere genel bir bakış sunar.

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 bir ç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 animasyon davranışını çalışma zamanında da tanımlayabilirsiniz.

Örneğin, iki işlemin ilişkili olduğunu kullanıcıya bildirmenin iyi bir yolu, oynat düğmesine dokunulduğunda duraklat düğmesine dönüşen bir oynat düğmesine animasyon eklemektir.

Daha fazla bilgi için Çekilebilir grafikleri canlandırma bölümünü okuyun.

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

2. Şekil. Bir iletişim kutusu görünüp kaybolduğunda görüntülenen ince bir animasyon, kullanıcı arayüzü değişikliğini daha az rahatsız edici hale getirir.

Düzeninizde 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ı olacak ince animasyonlar eklemek en iyisidir.

Geçerli düzende 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ü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 belirir 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 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. Yaygın animasyonlar oluşturmak için aşağıdaki sayfalara da bakabilirsiniz:

Fiziğe dayalı hareket

3. Şekil. ObjectAnimator ile oluşturulmuş animasyon.

4. Şekil. Fizik tabanlı API'lerle oluşturulmuş animasyon.

Mümkün olduğunda, animasyonlarınızın doğal görünmesini sağlamak için gerçek dünyaya ait fiziği uygulayın. Örneğin, hedefleri değiştiğinde ivmeyi korumalı ve herhangi bir değişiklik sırasında sorunsuz geçişler yapmalıdır.

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

Fiziğe dayalı, sık kullanılan iki animasyon şunlardır:

ObjectAnimator API'leriyle oluşturulanlar gibi, fiziğe dayalı olmayan animasyonlar oldukça statiktir ve sabit bir süreye sahiptir. Hedef değer değişirse hedef değer değişikliği sırasında 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 süreç görsel olarak, Şekil 3'te gösterildiği gibi animasyonda ani bir duraklama ve ardından kopuk bir hareket oluşturur.

DynamicAnimation gibi fizik tabanlı animasyon API'leriyle oluşturulan animasyonlar güç kullanılarak çalıştırılır. Hedef değerdeki değişiklik, geçerli bir değişikliğe yol açar. Yeni kuvvet, yeni hedefe sürekli bir geçiş sağlayan mevcut hıza uygulanır. Bu süreç, Ş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üzeni değiştirerek veya yeni bir etkinlik başlatarak daha fazla ayrıntı gösterecek bir animasyon kullanılabilir.

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ü belirlemektir. Daha sonra, sistem iki düzen arasında bir animasyon bulur ve yürütür. Bunu tüm kullanıcı arayüzünü veya sadece 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ıç sahnesi genellikle mevcut düzenden otomatik olarak belirlenir ancak başlangıç ve bitiş düzeninin her biri bir Scene içinde depolanır. Sisteme ne tür bir animasyon istediğinizi bildirmek için bir Transition oluşturun, ardından TransitionManager.go() yöntemini çağırın ve sistem, düzenleri değiştirmek için animasyonu çalıştırır.

Daha fazla bilgi için Geçiş kullanarak düzen değişikliklerini canlandırma bölümünü okuyun. Örnek kod için BasicTransition'a göz atın.

Etkinlikler arasında animasyon uygular

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ı etkinliklerde düzenler arasında animasyonlar oluşturmanıza olanak tanır.

Yeni etkinliği kenardan içeri kaydırma veya karartma gibi basit animasyonlar uygulayabilirsiniz. Ancak 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, Şekil 5'te gösterilen animasyon gibi, öğeyi sorunsuz bir şekilde büyüterek ekranı kaplayacak şekilde büyüten bir animasyona sahip yeni etkinliğe geçiş yapabilirsiniz.

Her zamanki gibi startActivity() kodunu çağırıyorsunuz, ancak buna ActivityOptions.makeSceneTransitionAnimation() tarafından sağlanan bir dizi seçenek iletiyorsunuz. 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: