Animacje mogą dodawać wizualne wskazówki, które informują użytkowników o tym, co dzieje się w aplikacji. Są one szczególnie przydatne, gdy interfejs zmienia stan, np. gdy wczytuje się nowa treść lub stają się dostępne nowe działania. Animacje nadają aplikacji bardziej dopracowany wygląd, co sprawia, że wygląda ona na bardziej profesjonalną.
Android zawiera różne interfejsy API animacji, zależnie od tego, jaki typ animacji chcesz użyć. Ta dokumentacja zawiera omówienie różnych sposobów dodawania animacji do interfejsu użytkownika.
Aby lepiej zrozumieć, kiedy należy używać animacji, zapoznaj się z przewodnikiem Material Design na temat animacji.
.Animowanie bitmap
Rysunek 1. Animowany obiekt rysowalny.
Aby animować grafikę bitmapową, np. ikonę czy ilustrację, użyj elementu interfejsów API animacji. Zwykle animacje są definiowane statycznie za pomocą zasobu rysowanego, ale można też zdefiniować zachowanie animacji w czasie wykonywania.
Na przykład dobry sposób na poinformowanie użytkownika, że 2 działania są powiązane ze sobą jest animowanie przycisku odtwarzania, który zmienia się w przycisk wstrzymania, kliknij.
Więcej informacji znajdziesz w artykule Animowanie grafiki do rysowania.
animować widoczność i ruchy interfejsu;
Rysunek 2. Subtelna animacja po wyświetleniu okna i znika, co sprawia, że interfejs nie jest zniekształcony.
Gdy musisz zmienić widoczność lub pozycję widoków w układzie, dodaj subtelne animacje, które pomogą użytkownikowi zrozumieć, jak działa interfejs zmian.
Aby przenosić widoki, wyświetlać je lub ukrywać w bieżącym układzie, możesz użyć systemu animacji właściwości udostępnianego przez pakiet android.animation
, który jest dostępny w Androidzie 3.0 (poziom interfejsu API 11) i nowszych wersjach. Te interfejsy API aktualizują właściwości obiektów View
w ciągu określonego czasu, stale odświeżając widok wraz ze zmianami właściwości. Na przykład gdy zmienisz
właściwości pozycji, widok przesuwa się po ekranie. Gdy zmienisz właściwość alfa, widok będzie się pojawiać lub znikać.
Aby uzyskać najprostszy sposób tworzenia tych animacji, włącz animacje na układu, dzięki czemu po zmianie widoczności widoku zostaje zastosowana animacja. automatycznie. Więcej informacji znajdziesz w artykule Automatyczne animowanie układu.
Aby dowiedzieć się, jak tworzyć animacje za pomocą systemu animacji właściwości, przeczytaj Omówienie animacji usługi. Aby utworzyć typowe animacje, możesz też zapoznać się z tymi stronami:
Ruch oparty na fizyce
Rysunek 3. Animacja utworzona w ObjectAnimator.
Rysunek 4. Animacja oparta na fizyce API.
W miarę możliwości stosuj w animacji prawa fizyki, aby wyglądała naturalnie. Na przykład powinny one zachowywać dynamikę, gdy zmienia się wartość docelowa, oraz płynnie przechodzić przez wszelkie zmiany.
Aby umożliwić takie działanie, biblioteka pomocy Androida zawiera bibliotekę opartą na fizyce interfejsy API do animacji, które wykorzystują prawa fizyki do kontrolowania sposobu animacji wystąpienia.
Są to 2 popularne animacje oparte na fizyce:
Animacje nieoparte na fizyce – np. te utworzone przy użyciu interfejsów API ObjectAnimator
– są dość statyczne i mają atrybut
przez stały czas. Jeśli wartość docelowa się zmieni, musisz anulować animację w momencie zmiany wartości docelowej, ponownie skonfigurować animację z nową wartością jako nową wartością początkową i dodać nową wartość docelową. Wizualnie ten proces
powoduje gwałtowny zatrzymanie animacji, a później ruch rozłączony,
jak widać na rysunku 3.
Animacje utworzone przy użyciu opartych na fizyce interfejsów API animacji, takich jak
DynamicAnimation
, źródło:
siła. Zmiana wartości docelowej powoduje zmianę siły. Nowy
działa do istniejącej prędkości, co powoduje ciągłe przejście do
nowy cel. Pozwala to uzyskać bardziej naturalnie wyglądającą animację,
co pokazano na rys. 4.
Animuj zmiany układu
Rysunek 5. Animację pokazującą więcej szczegółów można uzyskać, zmieniając układ lub rozpoczynając nową aktywność.
W Androidzie 4.4 (poziom interfejsu API 19) i nowszych możesz korzystać z platformy przejścia do tworzenia animacji przy zamienianiu układu w bieżącym działaniu lub fragment. Wystarczy, że określisz układ początkowy i końcowy oraz typ animacji, którego chcesz użyć. Następnie system określa i wykonuje animację między tymi 2 układami. Możesz za jego pomocą zastąpić cały interfejs lub przenieść lub zastąpić tylko niektóre widoki.
Gdy na przykład użytkownik kliknie element, aby wyświetlić więcej informacji, możesz zastąpić układ szczegółami elementu, stosując przejście podobne do tego, które pokazano na rysunku 5.
Układ początkowy i końcowy są przechowywane w folderze
Scene
, chociaż scena początkowa to
zwykle określane automatycznie na podstawie bieżącego układu. Utwórz element Transition
, aby poinformować system, jaki typ animacji chcesz użyć, a potem wywołaj element TransitionManager.go()
. System uruchomi animację, aby zamienić układy.
Więcej informacji znajdziesz w artykule Animowanie zmian układu za pomocą przejścia. Przykładowy kod znajdziesz Podstawowe przejście ,
Przełączaj się między czynnościami
W Androidzie 5.0 (poziom interfejsu API 21) lub nowszym możesz też tworzyć animacje, które będą płynnie przechodzić między aktywnościami. Są one oparte na tym samym przejściu platformę opisaną w poprzedniej sekcji, ale pozwala tworzyć animacje między układami w osobnych aktywnościach.
Możesz zastosować proste animacje, np. przesuwanie nowej aktywności z boku lub jej stopniowe pojawianie się, ale możesz też utworzyć animacje, które będą przechodzić między widokami współdzielonymi w każdej aktywności. Gdy na przykład użytkownik kliknie element, aby wyświetlić więcej informacji, możesz przejść do nowej czynności za pomocą animacji, która płynnie powiększa element, aż wypełni on ekran, jak w przypadku animacji pokazanej na rysunku 5.
Jak zwykle wywołujesz funkcję startActivity()
, ale przekazujesz jej zestaw opcji udostępnionych przez usługę ActivityOptions.makeSceneTransitionAnimation()
.
Ten pakiet opcji może obejmować to, które widoki są współdzielone przez
aby umożliwić połączenie między nimi w czasie animacji.
Dodatkowe materiały: