to rzeczywiście możliwe do animowania widgety RemoteView. Problem polega na tym, że jest on bardzo restrykcyjny, co wynika z wpływu bezpieczeństwa na uruchamianie niestandardowego kodu w procesie systemowym.
Mam na myśli to, że Android będzie działał tylko z animacjami, które są wyrażone w plikach res/anim xml, które są powiązane z układami za pomocą xml. Niektóre widżety RemoteView obsługują ten
Przykładem tego jest widget aplikacji Wiadomości i pogoda, który jest dostępny w systemie Android. Robi to za pomocą ViewFlipper, aby przeglądać każdą historię co 10 sekund.
<ViewFlipper android:layout_width="match_parent" android:layout_height="wrap_content" android:measureAllChildren="true" android:flipInterval="10000" android:autoStart="true"
android:inAnimation="@android:anim/fade_in" android:outAnimation="@android:anim/fade_out" android:animateFirstView="true">
<TextView android:id="@+id/Description1TextView" style="@style/AWCText.Centered" android:layout_width="match_parent" android:layout_height="wrap_content"/>
<TextView android:id="@+id/Description2TextView" style="@style/AWCText.Centered" android:layout_width="match_parent" android:layout_height="wrap_content"/>
<TextView android:id="@+id/Description3TextView" style="@style/AWCText.Centered" android:layout_width="match_parent" android:layout_height="wrap_content"/>
<TextView android:id="@+id/Description4TextView" style="@style/AWCText.Centered" android:layout_width="match_parent" android:layout_height="wrap_content"/>
</ViewFlipper>
W tym przykładzie można związać oczekujących zamiary każdego TextView. Tak więc, gdy użytkownik kliknie, może nastąpić inna akcja.
Wreszcie, Android powoli dodawał obsługę animowanych widoków w każdej wersji. Na przykład TransitionDrawables (cross shining selector drawable) nie przechodzą cross-fade aż do wersji Android 3.0.
Patrząc w ten sam , gdybyś już to zrobił, byłoby miło, gdybyś mógł podzielić się swoim rozwiązaniem tutaj. – Bachi
Pewnie - spróbuje znaleźć czas, aby to zapisać. Zasadniczo chodzi o to, aby zdefiniować układy, w których wbudowane są początkowe animacje, a następnie ustawić te układy, gdy wymagane są animacje. IIRC musisz przejść do nowego układu, aby uruchomić animację, więc możesz potrzebować wielu układów z tą samą animacją i na przemian z nimi. Przydaje się ustawienie timera, aby wrócić do nie-animowanej wersji widżetu po zakończeniu animacji - w przeciwnym razie powrót do ekranu głównego może ponownie uruchomić animację. – Adrian
, którą z nich chcesz kontrolować za pomocą usługi w tle, układu lub animacji? Czy mógłbyś szczegółowo opisać to pytanie? – MoiTempete