Animasyon kaynakları

Bir animasyon kaynağı, iki animasyon türünden birini tanımlayabilir:

Mülk animasyonu
Animator ile ayarlanan bir dönem boyunca nesnenin özellik değerlerini değiştirerek animasyon oluşturur.
Animasyonu görüntüle

Animasyon görüntüleme çerçevesiyle yapabileceğiniz iki tür animasyon vardır:

Tesis animasyonu

Belirli bir süre boyunca hedef nesnenin özelliklerini (arka plan rengi veya alfa değeri gibi) değiştiren, XML'de tanımlanan animasyon.

dosya konumu:
res/animator/filename.xml
Dosya adı, kaynak kimliği olarak kullanılır.
derlenmiş kaynak veri türü:
ValueAnimator, ObjectAnimator veya AnimatorSet öğesine kaynak işaretçisi
kaynak referansı:
Java tabanlı veya Kotlin kodunda: R.animator.filename
XML: @[package:]animator/filename
söz dizimi:
<set
  android:ordering=["together" | "sequentially"]>

    <objectAnimator
        android:propertyName="string"
        android:duration="int"
        android:valueFrom="float | int | color"
        android:valueTo="float | int | color"
        android:startOffset="int"
        android:repeatCount="int"
        android:repeatMode=["restart" | "reverse"]
        android:valueType=["intType" | "floatType"]/>

    <animator
        android:duration="int"
        android:valueFrom="float | int | color"
        android:valueTo="float | int | color"
        android:startOffset="int"
        android:repeatCount="int"
        android:repeatMode=["restart" | "reverse"]
        android:valueType=["intType" | "floatType"]/>

    <set>
        ...
    </set>
</set>

Dosyanın tek bir kök öğesi olmalıdır: <set>, <objectAnimator> veya <valueAnimator>. Animasyon öğelerini, diğer <set> öğeleri de dahil olmak üzere <set> öğesinin içinde gruplandırabilirsiniz.

öğeler:
<set>
Diğer animasyon öğelerini (<objectAnimator>, <valueAnimator> veya diğer <set> öğeleri) barındıran kapsayıcı. AnimatorSet sembolünü temsil eder.

Animasyonları başka gruplandırmak için iç içe yerleştirilmiş <set> etiketleri belirtebilirsiniz. Her <set> kendi ordering özelliğini tanımlayabilir.

Özellikler:

android:ordering
Anahtar kelime. Bu kümedeki animasyonların oynatma sırasını belirtir.
DeğerAçıklama
sequentiallyBu kümedeki animasyonları sırayla oynatın.
together (varsayılan)Bu kümedeki animasyonları aynı anda oynatın.
<objectAnimator>
Bir nesnenin belirli bir özelliğini belirli bir süre boyunca canlandırır. ObjectAnimator sembolünü temsil eder.

Özellikler:

android:propertyName
Dize. Zorunludur. Nesnenin animasyonun uygulanacağı özellik (adı tarafından referans verilir). Örneğin, bir View nesnesi için "alpha" veya "backgroundColor" belirtebilirsiniz. Ancak objectAnimator öğesi bir target özelliği göstermez. Bu nedenle, nesneyi XML bildiriminde canlandırılacak şekilde ayarlayamazsınız. loadAnimator() yöntemini çağırarak animasyon XML kaynağınızı şişirmeniz ve bu özelliği içeren hedef nesneyi ayarlamak için setTarget() yöntemini çağırmanız gerekir.
android:valueTo
kayan, int veya renk değerleridir. Zorunludur. Animasyonlu özelliğin sona erdiği değer. Renkler, #333333 gibi altı basamaklı onaltılık sayılar olarak temsil edilir.
android:valueFrom
kayan, int veya renk değerleridir. Animasyonlu özelliğin başladığı değer. Belirtilmezse animasyon, mülkün get yöntemi ile elde edilen değerle başlar. Renkler, #333333 gibi altı basamaklı onaltılık sayılar olarak temsil edilir.
android:duration
int: Animasyonun milisaniye cinsinden süresi. Varsayılan değer 300 milisaniyedir.
android:startOffset
int. start() çağrıldıktan sonra animasyonun geciktirildiği milisaniye süresi.
android:repeatCount
int: Bir animasyonun kaç kez tekrarlanacağını belirtir. Sınırsız olarak tekrarlamak veya pozitif bir tam sayı için "-1" değerine ayarlayın. Örneğin, "1" değeri, animasyonun ilk kez çalıştırıldıktan sonra bir kez tekrarlandığı ve bu nedenle animasyonun toplam iki kez oynatıldığı anlamına gelir. Varsayılan değer "0", yani tekrar olmadığı anlamına gelir.
android:repeatMode
int. Animasyonun sonuna ulaştığında nasıl davranacağını belirtir. Bu özelliğin etkili olabilmesi için android:repeatCount pozitif bir tam sayıya veya "-1" değerine ayarlanmalıdır. Animasyonun her yinelemede ters yönde olması için "reverse" değerine veya animasyonun her defasında baştan döngüye girmesi için "restart" değerine ayarlayın.
android:valueType
Anahtar kelime. Değer bir renkse bu özelliği belirtmeyin. Animasyon çerçevesi, renk değerlerini otomatik olarak işler.
DeğerAçıklama
intTypeAnimasyonlu değerlerin tam sayı olduğunu belirtir.
floatType (varsayılan)Animasyonlu değerlerin kayan olduğunu belirtir.
<animator>
Animasyonu belirli bir süre boyunca oynatır. ValueAnimator öğesini temsil eder.

Özellikler:

android:valueTo
kayan, int veya renk değerleridir. Zorunludur. Animasyonun sona erdiği değer. Renkler, #333333 gibi altı basamaklı onaltılık sayılar olarak temsil edilir.
android:valueFrom
kayan, int veya renk değerleridir. Zorunludur. Animasyonun başladığı değer. Renkler, #333333 gibi altı basamaklı onaltılık sayılar olarak temsil edilir.
android:duration
int: Animasyonun milisaniye cinsinden süresi. Varsayılan değer 300 ms'dir.
android:startOffset
int. start() çağrıldıktan sonra animasyonun geciktirildiği milisaniye süresi.
android:repeatCount
int: Bir animasyonun kaç kez tekrarlanacağını belirtir. Sınırsız olarak tekrarlamak veya pozitif bir tam sayı için "-1" değerine ayarlayın. Örneğin, "1" değeri, animasyonun ilk kez çalıştırıldıktan sonra bir kez tekrarlandığı ve bu nedenle animasyonun toplam iki kez oynatıldığı anlamına gelir. Varsayılan değer "0", yani tekrar olmadığı anlamına gelir.
android:repeatMode
int. Animasyonun sonuna ulaştığında nasıl davranacağını belirtir. Bu özelliğin etkili olabilmesi için android:repeatCount pozitif bir tam sayıya veya "-1" değerine ayarlanmalıdır. Animasyonun her yinelemede ters yönde olması için "reverse" değerine veya animasyonun her defasında baştan döngüye girmesi için "restart" değerine ayarlayın.
android:valueType
Anahtar kelime. Değer bir renkse bu özelliği belirtmeyin. Animasyon çerçevesi, renk değerlerini otomatik olarak işler.
DeğerAçıklama
intTypeAnimasyonlu değerlerin tam sayı olduğunu belirtir.
floatType (varsayılan)Animasyonlu değerlerin kayan olduğunu belirtir.
örnek:

res/animator/property_animator.xml konumuna kaydedilen XML dosyası:

<set android:ordering="sequentially">
    <set>
        <objectAnimator
            android:propertyName="x"
            android:duration="500"
            android:valueTo="400"
            android:valueType="intType"/>
        <objectAnimator
            android:propertyName="y"
            android:duration="500"
            android:valueTo="300"
            android:valueType="intType"/>
    </set>
    <objectAnimator
        android:propertyName="alpha"
        android:duration="500"
        android:valueTo="1f"/>
</set>

Bu animasyonu çalıştırmak için kodunuzdaki XML kaynaklarını bir AnimatorSet nesnesi olacak şekilde şişirin ve ardından animasyon grubunu başlatmadan önce tüm animasyonlar için hedef nesneleri ayarlayın. setTarget() işlevinin çağrılması, kolaylık sağlamak amacıyla tüm AnimatorSet alt öğeleri için tek bir hedef nesne ayarlar. Bunun nasıl yapılacağı aşağıdaki kodda gösterilmektedir:

Kotlin

val set: AnimatorSet = AnimatorInflater.loadAnimator(myContext, R.animator.property_animator)
    .apply {
        setTarget(myObject)
        start()
    }

Java

AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext,
    R.animator.property_animator);
set.setTarget(myObject);
set.start();
ayrıca bakın:

Animasyonu görüntüle

Görüntüleme animasyonu çerçevesi, her ikisi de XML'de tanımlanan 3-12 kare animasyonları destekler. Aşağıdaki bölümlerde, her iki yöntemin nasıl kullanılacağı açıklanmaktadır.

8-12 yaş animasyonu

Bir grafik üzerinde döndürme, solma, hareket etme ve esneme gibi geçişler gerçekleştiren, XML'de tanımlanan animasyon.

dosya konumu:
res/anim/filename.xml
Dosya adı, kaynak kimliği olarak kullanılır.
derlenmiş kaynak veri türü:
Animation öğesine kaynak işaretçisi
kaynak referansı:
Java'da: R.anim.filename
XML'de: @[package:]anim/filename
söz dizimi:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@[package:]anim/interpolator_resource"
    android:shareInterpolator=["true" | "false"] >
    <alpha
        android:fromAlpha="float"
        android:toAlpha="float" />
    <scale
        android:fromXScale="float"
        android:toXScale="float"
        android:fromYScale="float"
        android:toYScale="float"
        android:pivotX="float"
        android:pivotY="float" />
    <translate
        android:fromXDelta="float"
        android:toXDelta="float"
        android:fromYDelta="float"
        android:toYDelta="float" />
    <rotate
        android:fromDegrees="float"
        android:toDegrees="float"
        android:pivotX="float"
        android:pivotY="float" />
    <set>
        ...
    </set>
</set>

Dosyanın tek bir kök öğesi olmalıdır: Diğer animasyon öğelerinin (iç içe yerleştirilmiş <set> öğeleri dahil) bir grubunu (veya gruplarını) barındıran <alpha>, <scale>, <translate>, <rotate> ya da <set> öğesi.

öğeler:
<set>
Diğer animasyon öğelerini (<alpha>, <scale>, <translate>, <rotate>) veya diğer <set> öğelerini barındıran bir kapsayıcı. AnimationSet öğesini temsil eder.

Özellikler:

android:interpolator
Interpolator kaynağı. Animasyona uygulanacak bir Interpolator. Değer, interpolatör belirten bir kaynağa başvuru olmalıdır, interpolatör sınıf adı değil. Platformda varsayılan interpolatör kaynakları mevcuttur veya kendi interpolatör kaynağınızı oluşturabilirsiniz. İnterpolatörler hakkında daha fazla bilgi için aşağıdaki tartışmaya bakın.
android:shareInterpolator
Boole. Tüm alt öğeler arasında aynı interpolatörü paylaşmak istiyorsanız "true".
<alpha>
Şeffaflaşma veya belirme animasyonu. AlphaAnimation öğesini temsil eder.

Özellikler:

android:fromAlpha
Kayan değer. Başlangıç opaklığı ofseti. 0,0 şeffaf ve 1,0 opaktır.
android:toAlpha
Kayan değer. Bitiş opaklığı ofseti. 0,0 şeffaf ve 1,0 opaktır.

<alpha> tarafından desteklenen daha fazla özellik için, XML özellikleri bu öğe tarafından devralınan Animation sınıf referansına bakın.

<scale>
Yeniden boyutlandırma animasyonu. pivotX ve pivotY belirterek resmin dışa veya içe doğru büyüdüğü merkez noktasını belirtebilirsiniz. Örneğin, bu değerler 0,0 (sol üst köşe) ise tüm büyümeler aşağı ve sağa doğru görüntülenir. ScaleAnimation öğesini temsil eder.

Özellikler:

android:fromXScale
Kayan değer. Başlangıç X boyutu ofseti; burada 1, 0 herhangi bir değişiklik değildir.
android:toXScale
Kayan değer. Bitiş X boyutu ofseti; burada 1, 0 herhangi bir değişiklik değildir.
android:fromYScale
Kayan değer. Başlangıç Y boyutu ofseti; burada 1, 0 herhangi bir değişiklik değildir.
android:toYScale
Kayan değer. Bitiş Y boyutu ofseti; burada 1, 0 herhangi bir değişiklik değildir.
android:pivotX
Kayan değer. Nesne ölçeklendirildiğinde sabit kalacak X koordinatı.
android:pivotY
Kayan değer. Nesne ölçeklendirildiğinde sabit kalacak Y koordinatı.

<scale> tarafından desteklenen daha fazla özellik için, XML özellikleri bu öğe tarafından devralınan Animation sınıf referansına bakın.

<translate>
Dikey ve/veya yatay hareket. TranslateAnimation öğesini temsil eder. Aşağıdaki özellikleri bu üç biçimden herhangi birinde destekler:
  • "%" ile biten -100 ile 100 arasındaki değerlerdir. Kendisiyle göreli bir yüzdeyi belirtir.
  • "%p" ile biten -100 ile 100 arasındaki değerlerdir. Üst öğeye göre bir yüzde değeri gösterilir.
  • Mutlak değer gösteren ve son eki olmayan hareketli değer.

Özellikler:

android:fromXDelta
Bolluk veya yüzde. Başlangıç X ofseti. Normal konuma göre piksel cinsinden (ör. "5"), öğe genişliğine göre yüzde (ör. "5%") veya üst genişliğe göre yüzde ("5%p" gibi) cinsinden ifade edilir.
android:toXDelta
Bolluk veya yüzde. Bitiş X ofseti. Normal konuma göre piksel cinsinden (ör. "5"), öğe genişliğine göre yüzde (ör. "5%") veya üst genişliğe göre yüzde ("5%p" gibi) cinsinden ifade edilir.
android:fromYDelta
Bolluk veya yüzde. Başlangıç Y ofseti. Normal konuma göre piksel cinsinden (ör. "5"), öğe yüksekliğine göre yüzde cinsinden (ör. "5%") veya üst yüksekliğe göre yüzde ("5%p" gibi) cinsinden ifade edilir.
android:toYDelta
Bolluk veya yüzde. Bitiş Y ofseti. Normal konuma göre piksel cinsinden (ör. "5"), öğe yüksekliğine göre yüzde cinsinden (ör. "5%") veya üst yüksekliğe göre yüzde ("5%p" gibi) cinsinden ifade edilir.

<translate> tarafından desteklenen daha fazla özellik için, XML özellikleri bu öğe tarafından devralınan Animation sınıf referansına bakın.

<rotate>
Rotasyon animasyonu. RotateAnimation öğesini temsil eder.

Özellikler:

android:fromDegrees
Kayan değer. Derece cinsinden başlangıç açısal konumu.
android:toDegrees
Kayan değer. Derece cinsinden bitiş açısal konumu.
android:pivotX
Bolluk veya yüzde. Dönme merkezinin X koordinatı. Nesnenin sol kenarına göreli piksel (ör. "5"), nesnenin sol kenarına göre (ör. "5%") yüzde olarak veya üst kapsayıcının sol kenarına göre ("5%p" gibi) yüzde cinsinden ifade edilir.
android:pivotY
Bolluk veya yüzde. Dönme merkezinin Y koordinatı. Nesnenin üst kenarına göreli piksel cinsinden (ör. "5"), nesnenin üst kenarına göre (ör. "5%") yüzde olarak veya "5%p" gibi üst kapsayıcının üst kenarına göre yüzde cinsinden ifade edilir.

<rotate> tarafından desteklenen daha fazla özellik için, XML özellikleri bu öğe tarafından devralınan Animation sınıf referansına bakın.

örnek:

res/anim/hyperspace_jump.xml konumuna kaydedilen XML dosyası:

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <scale
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:fromXScale="1.0"
        android:toXScale="1.4"
        android:fromYScale="1.0"
        android:toYScale="0.6"
        android:pivotX="50%"
        android:pivotY="50%"
        android:fillAfter="false"
        android:duration="700" />
    <set
        android:interpolator="@android:anim/accelerate_interpolator"
        android:startOffset="700">
        <scale
            android:fromXScale="1.4"
            android:toXScale="0.0"
            android:fromYScale="0.6"
            android:toYScale="0.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="400" />
        <rotate
            android:fromDegrees="0"
            android:toDegrees="-45"
            android:toYScale="0.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="400" />
    </set>
</set>

Aşağıdaki uygulama kodu, animasyonu bir ImageView öğesine uygular ve animasyonu başlatır:

Kotlin

val image: ImageView = findViewById(R.id.image)
val hyperspaceJump: Animation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump)
image.startAnimation(hyperspaceJump)

Java

ImageView image = (ImageView) findViewById(R.id.image);
Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
image.startAnimation(hyperspaceJump);
ayrıca bakın:

İnterpolatörler

İnterpolatör, XML'de tanımlanan ve bir animasyondaki değişiklik hızını etkileyen animasyon düzenleyicidir. Bu, mevcut animasyon efektlerinizin hızlandırılmasını, yavaşlatılmasını, tekrarlanmasını, geri alınmasını vb. sağlar.

android:interpolator özelliğine sahip bir animasyon öğesine interpolatör uygulanır. Bu özelliğin değeri, interpolatör kaynağına başvurudur.

Android'de kullanılabilen tüm interpolatörler Interpolator sınıfının alt sınıflarıdır. Android, her interpolatör sınıfı için android:interpolator özelliğini kullanarak bir animasyona interpolatör uygulamak üzere referans verebileceğiniz bir herkese açık kaynak içerir. Aşağıdaki tabloda her bir interpolatör için kullanılacak kaynak belirtilmektedir:

İnterpolatör sınıfıKaynak Kimliği
AccelerateDecelerateInterpolator @android:anim/accelerate_decelerate_interpolator
AccelerateInterpolator @android:anim/accelerate_interpolator
AnticipateInterpolator @android:anim/anticipate_interpolator
AnticipateOvershootInterpolator @android:anim/anticipate_overshoot_interpolator
BounceInterpolator @android:anim/bounce_interpolator
CycleInterpolator @android:anim/cycle_interpolator
DecelerateInterpolator @android:anim/decelerate_interpolator
LinearInterpolator @android:anim/linear_interpolator
OvershootInterpolator @android:anim/overshoot_interpolator

Bunlardan birini android:interpolator özelliğiyle nasıl uygulayabileceğiniz aşağıda açıklanmıştır:

<set android:interpolator="@android:anim/accelerate_interpolator">
    ...
</set>

Özel interpolatörler

Platformun sağladığı interpolatörlerden memnun değilseniz değiştirilmiş özelliklere sahip özel bir interpolatör kaynağı oluşturabilirsiniz. Örneğin, AnticipateInterpolator için hızlanma hızını veya CycleInterpolator için devir sayısını ayarlayabilirsiniz. Bunun için XML dosyasında kendi interpolatör kaynağınızı oluşturursunuz.

dosya konumu:
res/anim/filename.xml
Dosya adı, kaynak kimliği olarak kullanılır.
derlenmiş kaynak veri türü:
İlgili interpolatör nesnesine kaynak işaretçisi
kaynak referansı:
XML olarak: @[package:]anim/filename
söz dizimi:
<?xml version="1.0" encoding="utf-8"?>
<InterpolatorName xmlns:android="http://schemas.android.com/apk/res/android"
    android:attribute_name="value"
    />

Herhangi bir özellik uygulamazsanız interpolatörünüz, önceki tabloda listelenen platform tarafından sağlananlarla tam olarak aynı şekilde çalışır.

öğeler:
XML'de tanımlandığında her Interpolator uygulamasının, küçük harfle başlayan bir adı olduğuna dikkat edin.

<accelerateDecelerateInterpolator>
Değişim hızı yavaş başlar ve biter ancak orta noktaya doğru hızlanır.

Özellik yok.

<accelerateInterpolator>
Değişim hızı yavaş başlar ve sonra hızlanır.

Özellikler:

android:factor
Kayan değer. Hızlanma oranı. Varsayılan değer 1'dir.
<anticipateInterpolator>
Değişiklik önce geriye doğru başlar, ardından ileriye doğru ilerler.

Özellikler:

android:tension
Kayan değer. Uygulanacak gerilim miktarı. Varsayılan değer 2'dir.
<anticipateOvershootInterpolator>
Değişim geriye doğru başlar, ardından ileri atlayıp hedef değeri aşmasına ve ardından son değere sabitlenir.

Özellikler:

android:tension
Kayan değer. Uygulanacak gerilim miktarı. Varsayılan değer 2'dir.
android:extraTension
Kayan değer. Gerilimin çarpılacağı miktar. Varsayılan değer 1,5'tir.
<bounceInterpolator>
Değişiklik sonda geri gelir.

Özellik yok

<cycleInterpolator>
Animasyonu belirli sayıda döngü boyunca tekrarlar. Değişim hızı sinüsoidal bir düzen izler.

Özellikler:

android:cycles
Tamsayı. Döngü sayısı. Varsayılan değer 1'dir.
<decelerateInterpolator>
Değişim hızı hızlı başlar ve sonra yavaşlar.

Özellikler:

android:factor
Kayan değer. Yavaşlama oranı. Varsayılan değer 1'dir.
<linearInterpolator>
Değişim hızı sabittir.

Özellik yok.

<overshootInterpolator>
Değişim ileriye doğru atılır ve son değeri aşıp tekrar geri gelir.

Özellikler:

android:tension
Kayan değer. Uygulanacak gerilim miktarı. Varsayılan değer 2'dir.
örnek:

res/anim/my_overshoot_interpolator.xml konumuna kaydedilen XML dosyası:

<?xml version="1.0" encoding="utf-8"?>
<overshootInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
    android:tension="7.0"
    />

Bu animasyon XML'i interpolatörü uygular:

<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@anim/my_overshoot_interpolator"
    android:fromXScale="1.0"
    android:toXScale="3.0"
    android:fromYScale="1.0"
    android:toYScale="3.0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="700" />

Kare animasyonu

XML'de tanımlanan ve sırayla resim dizisi gösteren (ör. film) animasyon.

dosya konumu:
res/drawable/filename.xml
Dosya adı, kaynak kimliği olarak kullanılır.
derlenmiş kaynak veri türü:
AnimationDrawable öğesine kaynak işaretçisi
kaynak referansı:
Java'da: R.drawable.filename
XML'de: @[package:]drawable.filename
söz dizimi:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot=["true" | "false"] >
    <item
        android:drawable="@[package:]drawable/drawable_resource_name"
        android:duration="integer" />
</animation-list>
öğeler:
<animation-list>
Zorunlu. Bu, kök öğe olmalıdır. Bir veya daha fazla <item> öğesi içerir.

Özellikler:

android:oneshot
Boole. Animasyonu bir kez gerçekleştirmek isterseniz "true"; animasyonu döngüye almak için "false".
<item>
Tek bir animasyon karesi. Bir <animation-list> öğesinin alt öğesi olmalıdır.

Özellikler:

android:drawable
Çekilebilir kaynak. Bu çerçeve için kullanılacak çizim.
android:duration
Tamsayı. Bu karenin gösterileceği süre (milisaniye).
örnek:

res/drawable/rocket_thrust.xml konumuna kaydedilen XML dosyası:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
    <item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
</animation-list>

Aşağıdaki uygulama kodu, animasyonu bir View için arka plan olarak ayarlar ve ardından animasyonu oynatır:

Kotlin

val rocketImage: ImageView = findViewById(R.id.rocket_image)
rocketImage.setBackgroundResource(R.drawable.rocket_thrust)

val rocketAnimation = rocketImage.background
if (rocketAnimation is Animatable) {
    rocketAnimation.start()
}

Java

ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);

rocketAnimation = rocketImage.getBackground();
if (rocketAnimation instanceof Animatable) {
    ((Animatable)rocketAnimation).start();
}
ayrıca bakın: