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 gdy 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
Aby animować grafikę bitmapową, np. ikonę lub ilustrację, użyj interfejsów API animacji drawable. Zazwyczaj te animacje są definiowane statycznie za pomocą zasobu rysowanego, ale możesz też zdefiniować zachowanie animacji w czasie wykonywania.
Na przykład, aby poinformować użytkownika, że 2 działania są ze sobą powiązane, możesz użyć animacji przycisku odtwarzania, który po kliknięciu zmienia się w przycisk pauzy.
Więcej informacji znajdziesz w artykule Animowanie grafiki do rysowania.
animować widoczność i ruchy interfejsu;
Jeśli chcesz zmienić widoczność lub położenie widoków w układzie, najlepiej użyć subtelnych animacji, które pomogą użytkownikowi zrozumieć, jak zmienia się interfejs.
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. Jeśli na przykład zmienisz właściwości pozycji, widok przesunie się po ekranie. Gdy zmienisz właściwość alfa, widok będzie się pojawiać lub zanikać.
Aby w najprostszy sposób utworzyć te animacje, włącz animacje w swojej kompozycji, aby po zmianie widoczności widoku animacja była stosowana automatycznie. Więcej informacji znajdziesz w artykule Automatyczne animowanie zmian w układzie.
Aby dowiedzieć się, jak tworzyć animacje za pomocą systemu animacji obiektu, przeczytaj artykuł Omówienie animacji obiektu. Aby utworzyć typowe animacje, możesz też zapoznać się z tymi stronami:
Ruch oparty na fizyce
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ę cel, i przeprowadzać płynne przejścia podczas wprowadzania zmian.
Aby zapewnić te zachowania, biblioteka Android Support zawiera interfejsy API animacji opartej na fizyce, które wykorzystują prawa fizyki do kontrolowania sposobu działania animacji.
Oto 2 popularne animacje oparte na fizyce:
Animacje nieoparte na fizyce, takie jak te utworzone za pomocą interfejsów API ObjectAnimator
, są dość statyczne i mają ustalony czas trwania. 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ą. W ujęciu wizualnym proces ten powoduje nagłe zatrzymanie animacji, a następnie niespójną zmianę pozycji, jak pokazano na rysunku 3.
Animacje tworzone za pomocą interfejsów API animacji opartych na fizyce, takich jak DynamicAnimation
, są napędzane przez siłę. Zmiana wartości docelowej powoduje zmianę siły. Nowa siła jest stosowana do bieżącej prędkości, co umożliwia płynne przejście do nowej wartości docelowej. Dzięki temu animacja będzie wyglądać bardziej naturalnie, jak widać na rysunku 4.
animować zmiany układu,
W Androidzie 4.4 (poziom interfejsu API 19) lub nowszym możesz użyć ramy przejść, aby tworzyć animacje podczas zamiany układu w bieżącej czynności lub fragmencie. Wystarczy, że określisz układ początkowy i końcowy oraz typ animacji, której 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.
Początkowy i końcowy układ są przechowywane w Scene
, ale początkowa scena jest zwykle określana 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 w artykule BasicTransition.
Animowanie przejścia między aktywnoś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. Jest ono oparte na tym samym frameworku przejść opisanym w poprzedniej sekcji, ale umożliwia tworzenie animacji między układami w oddzielnych aktywnościach.
Możesz zastosować proste animacje, takie jak przesuwanie nowej aktywności z boku lub jej stopniowe pojawianie się, ale możesz też utworzyć animacje, które przechodzą między widokami udostępnionymi 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 ten 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 ActivityOptions.makeSceneTransitionAnimation()
.
Ten pakiet opcji może zawierać informacje o tym, które widoki są wspólne dla poszczególnych aktywności, aby ramy przejścia mogły je łączyć podczas animacji.
Dodatkowe materiały znajdziesz tutaj: