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 berperan memperindah aplikasi Anda, sehingga memberikannya tampilan dan nuansa yang lebih berkualitas.
Android menyertakan berbagai API animasi, bergantung pada jenis animasi yang diinginkan. Dokumentasi ini memberikan ringkasan tentang berbagai cara yang dapat Anda menambahkan gerakan ke UI Anda.
Untuk lebih memahami kapan Anda harus menggunakan animasi, lihat juga panduan Desain Material tentang gerakan.
Menganimasikan bitmap
Gambar 1. Drawable animasi.
Untuk menganimasikan grafik bitmap seperti ikon atau ilustrasi, gunakan drawable Animation API. Biasanya, animasi ini ditentukan secara statis dengan resource yang dapat digambar, tetapi Anda juga dapat menentukan perilaku animasi saat runtime.
Misalnya, cara yang baik untuk mengomunikasikan kepada pengguna bahwa dua tindakan terkait adalah 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 terlihat lebih mulus.
Jika Anda perlu mengubah visibilitas atau posisi tampilan di tata letak, sebaiknya sertakan animasi halus untuk membantu pengguna memahami perubahan yang akan terjadi pada 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
(API level 11) dan yang lebih tinggi. API ini memperbarui properti objek View
Anda selama jangka waktu tertentu, secara terus-menerus
menggambar ulang tampilan saat properti berubah. Misalnya, saat Anda mengubah
posisi, tampilan akan bergerak di sepanjang layar. Saat Anda mengubah properti alfa, tampilan akan menjadi jelas atau memudar.
Untuk cara paling sederhana dalam membuat animasi ini, aktifkan animasi pada sehingga saat Anda mengubah visibilitas tampilan, animasi akan diterapkan secara otomatis. Untuk informasi selengkapnya, lihat Menganimasikan perubahan 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 dibuat dengan ObjectAnimator.
Gambar 4. Animasi yang dibuat dengan API berbasis fisika.
Jika memungkinkan, terapkan prinsip fisika di dunia nyata ke animasi Anda sehingga terlihat alami. Misalnya, animasi harus menjaga momentum saat targetnya berubah dan melakukan transisi yang mulus selama perubahan apa pun.
Untuk menyediakan perilaku ini, Android Support Library menyertakan latihan berbasis fisika API animasi yang mengandalkan hukum fisika untuk mengontrol cara animasi Anda terjadi.
Dua animasi umum berbasis fisika adalah sebagai berikut:
Animasi yang tidak didasarkan pada fisika—seperti yang dibuat dengan ObjectAnimator
API—cukup statis dan memiliki
atau durasi tetap. Jika nilai target berubah, Anda harus membatalkan animasi pada
saat nilai target berubah, mengonfigurasi ulang animasi dengan nilai baru sebagai
nilai awal baru, dan menambahkan nilai target baru. Secara visual, proses ini
akan membuat penghentian mendadak dalam animasi, dan gerakan terputus setelahnya,
seperti yang ditunjukkan pada gambar 3.
Animasi yang dibuat dengan API animasi berbasis fisika, seperti
DynamicAnimation
, digerakkan oleh
gaya. Perubahan nilai target akan menghasilkan perubahan pada gaya tersebut. Gaya baru
akan berlaku pada kecepatan yang ada, yang membuat transisi berkelanjutan ke
target baru. Proses ini menghasilkan animasi yang
terlihat lebih alami, karena
yang ditunjukkan pada gambar 4.
Menganimasikan perubahan tata letak
Gambar 5. Animasi untuk menampilkan detail lainnya dapat dicapai dengan mengubah tata letak atau memulai aktivitas baru.
Di Android 4.4 (API level 19) dan yang lebih tinggi, Anda dapat menggunakan framework transisi untuk membuat animasi saat Anda menukar tata letak dalam aktivitas saat ini atau fragmen. Yang perlu Anda lakukan adalah menentukan tata letak awal dan akhir, jenis animasi yang ingin Anda gunakan. Kemudian, sistem akan mencari dan menjalankan animasi antara dua tata letak. Anda dapat menggunakan animasi ini untuk menukar seluruh UI atau 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 dalam gambar 5.
Tata letak awal dan akhir
masing-masing disimpan dalam
Scene
, meskipun scene awal
biasanya ditentukan secara otomatis
dari tata letak saat ini. Anda membuat
Transition
untuk memberi tahu sistem
jenis animasi yang Anda inginkan, lalu memanggil
TransitionManager.go()
dan sistem akan menjalankan animasi untuk menukar tata letak.
Untuk 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 bertransisi di antara aktivitas Anda. Hal ini didasarkan pada transisi yang dijelaskan di bagian sebelumnya, tetapi ini memungkinkan Anda membuat animasi di antara tata letak dalam aktivitas terpisah.
Anda dapat menerapkan animasi sederhana seperti menggeser aktivitas baru dari samping atau memasukkannya, tetapi Anda juga dapat membuat animasi yang bertransisi antara tampilan bersama di setiap aktivitas. Misalnya, saat pengguna mengetuk item untuk melihat informasi lebih lanjut, Anda dapat beralih ke aktivitas baru dengan animasi yang dengan lancar mengembangkan item itu untuk mengisi layar, seperti animasi yang ditampilkan di gambar 5.
Seperti biasa, Anda memanggil
startActivity()
,
tetapi berikan paket opsi
yang disediakan oleh
ActivityOptions.makeSceneTransitionAnimation()
Paket opsi ini mungkin mencakup tampilan yang dibagikan di antara
aktivitas sehingga framework transisi dapat menghubungkannya selama animasi berjalan.
Untuk referensi tambahan, lihat: