Wprowadzenie do animacji

Wypróbuj tworzenie wiadomości
Jetpack Compose to zalecany zestaw narzędzi interfejsu na Androida. Dowiedz się, jak korzystać z animacji w edytorze.

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 dodają aplikacji też styl wyższej jakości.

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ę też z przewodnikiem o ruchu w Material Design.

.

Animowanie bitmap

Rysunek 1. Animowany element rysowalny.

Aby animować grafikę bitową, 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.

Aby na przykład poinformować użytkownika, że ze sobą są powiązane 2 działania, można animować przycisk odtwarzania, który po dotknięciu zmienia się w przycisk pauzy.

Więcej informacji znajdziesz w artykule Animowanie grafiki do rysowania.

Animuj widoczność i ruch w interfejsie

Rysunek 2. Delikatna animacja podczas pojawiania się i znikania okna dialogowego sprawia, że zmiana interfejsu jest mniej rażąca.

Gdy musisz zmienić widoczność lub pozycję widoków w układzie, najlepiej dodaj subtelne animacje, 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. Na przykład gdy zmienisz właściwości pozycji, widok przesuwa się po ekranie. Po zmianie właściwości w wersji alfa widok zanika lub znika.

Aby najłatwiej tworzyć takie 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. Na tych stronach możesz też tworzyć popularne animacje:

Ruch oparty na fizyce

Rysunek 3. Animacja utworzona za pomocą ObjectAnimator.

Rysunek 4. Animacja stworzona za pomocą interfejsów API opartych na fizyce.

W miarę możliwości stosuj w animacji prawa fizyki, aby wyglądała naturalnie. Powinni na przykład zachowywać tempo, gdy zmienia się wartość docelowa, i wprowadzać płynne przejścia w każdej sytuacji.

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 ulegnie zmianie, musisz anulować animację w chwili zmiany wartości docelowej, ponownie skonfigurować animację z 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 utworzone przy użyciu interfejsów API do animacji opartych na fizyce, takich jak DynamicAnimation, są napędzane siłą. Zmiana wartości docelowej powoduje zmianę siły. Nowa siła jest stosowana do istniejącej prędkości, co powoduje ciągłe 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,

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) 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. Pozwala to zamienić cały interfejs lub przenieść bądź 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 Transition, aby poinformować system o wybranym typie animacji, a następnie wywołaj funkcję TransitionManager.go(), a system uruchomi animację, aby zamienić układy.

Więcej informacji znajdziesz w artykule Animowanie zmian układu przy użyciu 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, na przykład przesunąć nową aktywność z boku lub zaniknąć, ale możesz też tworzyć animacje przechodzące między udostępnionymi widokami w przypadku każdego działania. Na przykład, gdy użytkownik kliknie element, aby zobaczyć więcej informacji, można przejść do nowej aktywności z animacją, która płynnie powiększy dany element, aż wypełni ekran, tak jak na ilustracji 5.

Jak zwykle wywołujesz funkcję startActivity(), ale przekazujesz jej zestaw opcji udostępnionych przez ActivityOptions.makeSceneTransitionAnimation(). Ten pakiet opcji może obejmować widoki, które są współdzielone przez działania, dzięki czemu platforma przejścia może je połączyć podczas animacji.

Dodatkowe materiały znajdziesz tutaj: