Wprowadzenie do animacji

Wypróbuj sposób tworzenia wiadomości
Jetpack Compose to zalecany zestaw narzędzi UI na Androida. Dowiedz się, jak korzystać z animacji w sekcji Tworzenie

Animacje mogą zawierać wizualne wskazówki, które informują użytkowników o tym, co dzieje się w aplikacji. Są one szczególnie przydatne, gdy stan interfejsu użytkownika zmieni się, np. gdy wczyta się nowa treść lub pojawią się nowe działania. Animacje również nadają aplikacji wyrafinowany wygląd i styl.

Android zawiera różne interfejsy API animacji w zależności od tego, jaki typ animacji chcesz mieć. Ta dokumentacja zawiera omówienie różnych sposobów dodawania ruchu do interfejsu.

Aby lepiej zrozumieć, kiedy należy używać animacji, przeczytaj też przewodnik po Material Design dotyczący ruchu.

Animuj mapy bitowe

Rysunek 1. Animowany obiekt rysowalny.

Aby animować grafikę bitmapową, np. ikonę lub ilustrację, użyj rysowalnych interfejsów API animacji. Zwykle animacje te są definiowane statycznie za pomocą rysowalnych zasobów, ale możesz też definiować ich zachowanie w czasie działania.

Dobrym sposobem na poinformowanie użytkownika na przykład, że 2 działania są powiązane, jest animowanie przycisku odtwarzania, który po kliknięciu zmienia się w przycisk pauzy.

Więcej informacji znajdziesz w artykule Tworzenie animacji rysowalnych.

Animuj widoczność i ruch interfejsu

Rysunek 2. Subtelna animacja, gdy okno się pojawia i znika, sprawia, że zmiana w interfejsie jest mniej irytująca.

Jeśli chcesz zmienić widoczność lub położenie widoków w układzie, warto użyć subtelnych animacji, które pomogą użytkownikowi zrozumieć, jak zmienia się interfejs.

Aby przenieść, pokazać lub ukryć widoki w bieżącym układzie, możesz użyć systemu animacji właściwości dostępnego w pakiecie android.animation, który jest dostępny na Androidzie 3.0 (poziom interfejsu API 11) i nowszych. Te interfejsy API aktualizują właściwości obiektów View przez pewien czas, stale zmniejszając widok wraz ze zmianą tych właściwości. Na przykład: gdy zmienisz właściwości pozycji, widok przesuwa się po ekranie. Gdy zmienisz właściwość w wersji alfa, widok będzie zanikać lub znikać.

Najprostszym sposobem tworzenia tych animacji jest włączenie animacji w układzie. Gdy zmienisz widoczność widoku, animacja zostanie zastosowana automatycznie. Więcej informacji znajdziesz w artykule Automatyczne animowanie aktualizacji układu.

Aby dowiedzieć się, jak tworzyć animacje za pomocą systemu animacji właściwości, przeczytaj artykuł Omówienie animacji właściwości. Na tych stronach możesz też tworzyć typowe animacje:

Ruch zgodnie z fizyką

Rysunek 3. Animacja utworzona przy użyciu narzędzia ObjectAnimator.

Rysunek 4. To animacja stworzona za pomocą interfejsów API opartych na prawach fizyki.

Jeśli to możliwe, zastosuj do animacji rzeczywiste fizyki, aby wyglądały naturalnie. Na przykład powinni utrzymywać dynamikę przy zmianie celu i wykonywać płynne przejścia podczas wszelkich zmian.

Aby zapewnić te zachowania, biblioteka pomocy Androida zawiera oparte na fizyce interfejsy API do kontrolowania animacji na podstawie praw fizyki.

Oto 2 typowe animacje oparte na fizyce:

Animacje, które nie opierają się na fizyce (np. utworzone przy użyciu interfejsów API ObjectAnimator), są dość statyczne i mają stałą długość. Jeśli wartość docelowa się zmieni, musisz anulować animację w chwili zmiany wartości docelowej, skonfigurować animację z nową wartością jako nową wartością początkową i dodać nową. Wizualnie ten proces powoduje nagłą przerwę w animacji i przerwany ruch po jej zakończeniu, jak widać na ilustracji 3.

Animacje utworzone za pomocą interfejsów API opartych na prawach fizyki, takich jak DynamicAnimation, są generowane przez siłę. Zmiana wartości docelowej powoduje zmianę siły. Nowa siła działa do obecnej prędkości, co powoduje ciągłe przejście do nowego celu. Dzięki temu animacja uzyska bardziej naturalnie wyglądający efekt, co widać na Rysunku 4.

Animuj zmiany układu

Rysunek 5. Animację, która pokazuje więcej szczegółów, można uzyskać, zmieniając układ lub rozpoczynając nowe działanie.

W Androidzie 4.4 (poziom interfejsu API 19) i nowszych możesz używać platformy przejścia do tworzenia animacji przy zamianie układu w bieżącej aktywności lub jej fragmencie. Wystarczy, że określisz układ początkowy i końcowy oraz określisz typ animacji, którego chcesz użyć. Następnie system określa i uruchamia animację między dwoma układami. Dzięki temu możesz wymienić cały interfejs albo przenieść lub zastąpić tylko niektóre widoki.

Jeśli na przykład użytkownik kliknie element, aby zobaczyć więcej informacji, możesz zastąpić układ jego szczegółami, stosując przejście takie jak to pokazane na rys. 5.

Układ początkowy i końcowy są przechowywane w Scene, chociaż scena początkowa jest zwykle określana automatycznie na podstawie bieżącego układu. tworzysz obiekt Transition, aby wskazać systemowi typ animacji, którego chcesz użyć, a następnie wywołujesz metodę TransitionManager.go(), a system uruchamia animację, zmieniając układ.

Więcej informacji znajdziesz w artykule Tworzenie animacji i przejścia zmian układu. Przykładowy kod znajdziesz w omówieniu BasicTransition.

Animacje między działaniami

Na Androidzie 5.0 (poziom interfejsu API 21) i nowszych możesz też tworzyć animacje, które są przenoszone między działaniami. Wykorzystuje ona tę samą strukturę przejścia opisaną w poprzedniej sekcji, ale umożliwia tworzenie animacji między układami w ramach osobnych działań.

Możesz stosować proste animacje, np. przesuwać nową aktywność z boku lub ją zanikać, ale możesz też tworzyć animacje, które w przypadku każdej aktywności przełączają się między udostępnionymi widokami. Na przykład, gdy użytkownik kliknie element, aby zobaczyć więcej informacji, możesz przejść do nowego działania z animacją, która płynnie rozwija element w taki sposób, aby wypełnił ekran, tak jak na ilustracji 5.

Wywołujesz ją jak zwykle startActivity(), ale przekazujesz mu pakiet opcji oferowanych przez ActivityOptions.makeSceneTransitionAnimation(). Ten pakiet opcji może obejmować, które widoki są wspólne dla działań, aby platforma przejścia mogła je łączyć podczas animacji.

Dodatkowe materiały znajdziesz w tych artykułach: