Animasi dapat menambahkan petunjuk visual yang memberi tahu pengguna tentang apa yang terjadi di aplikasi Anda. Fitur ini berguna terutama saat status UI berubah, misalnya saat konten baru dimuat atau tindakan baru tersedia. Animasi juga membuat aplikasi Anda tampil lebih menarik, sehingga memberikan tampilan dan nuansa yang lebih berkualitas.
Android menyertakan berbagai API animasi, bergantung pada jenis animasi yang Anda inginkan. Dokumentasi ini memberikan ringkasan tentang berbagai cara untuk menambahkan gerakan ke UI Anda.
Untuk lebih memahami kapan Anda harus menggunakan animasi, lihat juga panduan Material Design tentang gerakan.
Menganimasikan bitmap
Gambar 1. Drawable animasi.
Untuk menganimasikan grafik bitmap seperti ikon atau ilustrasi, gunakan API animasi drawable. Biasanya, animasi ini ditentukan secara statis dengan resource drawable, tetapi Anda juga dapat menentukan perilaku animasi saat runtime.
Misalnya, cara yang baik untuk memberi tahu pengguna bahwa dua tindakan saling terkait adalah dengan menganimasikan tombol putar yang berubah menjadi tombol jeda saat diketuk.
Untuk informasi selengkapnya, baca Menganimasikan grafik drawable.
Menganimasikan gerakan dan visibilitas UI
Gambar 2. Animasi halus saat dialog muncul dan menghilang membuat perubahan UI tidak terlalu mengganggu.
Saat Anda perlu mengubah visibilitas atau posisi tampilan dalam tata letak, sebaiknya sertakan animasi halus untuk membantu pengguna memahami perubahan UI.
Untuk memindahkan, menampilkan, atau menyembunyikan tampilan dalam tata letak saat ini, Anda dapat menggunakan sistem animasi properti yang disediakan oleh paket android.animation, yang tersedia di Android 3.0 (level API 11) dan yang lebih tinggi. API ini memperbarui properti objek View Anda selama jangka waktu tertentu, dengan terus
menggambar ulang tampilan saat properti berubah. Misalnya, saat Anda mengubah
properti posisi, tampilan akan bergerak di seluruh layar. Saat Anda mengubah properti alfa, tampilan akan memudar atau memudar.
Untuk cara termudah membuat animasi ini, aktifkan animasi pada tata letak Anda sehingga saat Anda mengubah visibilitas tampilan, animasi akan diterapkan secara otomatis. Untuk mengetahui informasi selengkapnya, lihat Menganimasikan update tata letak secara otomatis.
Untuk mempelajari cara membuat animasi menggunakan sistem animasi properti, baca Ringkasan animasi properti. Anda juga dapat melihat halaman berikut untuk membuat animasi umum:
Gerakan berbasis fisika
Gambar 3. Animasi yang dibuat dengan ObjectAnimator.
Gambar 4. Animasi yang dibuat dengan API berbasis fisika.
Jika memungkinkan, terapkan fisika dunia nyata ke animasi Anda agar terlihat alami. Misalnya, mereka harus mempertahankan momentum saat targetnya berubah dan melakukan transisi yang lancar selama perubahan apa pun.
Untuk memberikan perilaku ini, Android Support Library menyertakan API animasi berbasis fisika yang mengandalkan hukum fisika untuk mengontrol cara animasi terjadi.
Dua animasi umum berbasis fisika adalah sebagai berikut:
Animasi yang tidak berbasis fisika—seperti yang dibuat dengan API ObjectAnimator—cukup statis dan memiliki
durasi tetap. Jika nilai target berubah, Anda harus membatalkan animasi pada
saat perubahan nilai target, mengonfigurasi ulang animasi dengan nilai baru sebagai
nilai awal baru, dan menambahkan nilai target baru. Secara visual, proses ini
membuat animasi berhenti tiba-tiba, dan gerakan yang tidak teratur setelahnya,
seperti yang ditunjukkan pada gambar 3.
Animasi yang dibuat dengan API animasi berbasis fisika, seperti
DynamicAnimation, digerakkan oleh
gaya. Perubahan nilai target akan menyebabkan perubahan gaya. Gaya baru
berlaku pada kecepatan yang ada, yang membuat transisi berkelanjutan ke
target baru. Proses ini menghasilkan animasi yang terlihat lebih alami, seperti
yang ditunjukkan pada gambar 4.
Menganimasikan perubahan tata letak
Gambar 5. Animasi untuk menampilkan detail selengkapnya dapat dicapai dengan mengubah tata letak atau memulai aktivitas baru.
Di Android 4.4 (level API 19) dan yang lebih tinggi, Anda dapat menggunakan framework transisi untuk membuat animasi saat menukar tata letak dalam Activity atau fragmen saat ini. Anda hanya perlu menentukan tata letak awal dan akhir serta jenis animasi yang ingin digunakan. Kemudian, sistem akan mencari tahu dan menjalankan animasi di antara kedua tata letak tersebut. Anda dapat menggunakannya untuk menukar seluruh UI atau untuk memindahkan atau mengganti beberapa tampilan saja.
Misalnya, saat pengguna mengetuk item untuk melihat informasi selengkapnya, Anda dapat mengganti tata letak dengan detail item, menerapkan transisi seperti yang ditunjukkan pada gambar 5.
Tata letak awal dan akhir masing-masing disimpan dalam
Scene, meskipun tampilan awal
biasanya ditentukan secara otomatis dari tata letak saat ini. Anda membuat
Transition untuk memberi tahu sistem
jenis animasi yang Anda inginkan, lalu panggil
TransitionManager.go()
dan sistem akan menjalankan animasi untuk menukar tata letak.
Untuk mengetahui informasi selengkapnya, baca Menganimasikan perubahan tata letak menggunakan transisi. Untuk kode contoh, lihat BasicTransition .
Menganimasikan antara aktivitas
Di Android 5.0 (API level 21) dan yang lebih tinggi, Anda juga dapat membuat animasi yang melakukan transisi antar-aktivitas. Hal ini didasarkan pada framework transisi yang sama seperti yang dijelaskan di bagian sebelumnya, tetapi memungkinkan Anda membuat animasi di antara tata letak dalam aktivitas terpisah.
Anda dapat menerapkan animasi sederhana seperti menggeser aktivitas baru dari samping atau memudarkannya, tetapi Anda juga dapat membuat animasi yang bertransisi di antara tampilan bersama di setiap aktivitas. Misalnya, saat pengguna mengetuk item untuk melihat informasi selengkapnya, Anda dapat beralih ke aktivitas baru dengan animasi yang memperbesar item tersebut dengan lancar untuk mengisi layar, seperti animasi yang ditunjukkan dalam gambar 5.
Seperti biasa, Anda memanggil
startActivity(),
tetapi meneruskan paket opsi yang disediakan oleh
ActivityOptions.makeSceneTransitionAnimation().
Paket opsi ini mungkin mencakup tampilan mana yang dibagikan di antara
aktivitas sehingga framework transisi dapat menghubungkannya selama animasi.
Untuk referensi tambahan, lihat: