in realtà è possibile animare i widget remoteview. Il problema è che è super restrittivo che è di progettazione a causa delle implicazioni di sicurezza nell'esecuzione di codice personalizzato in un processo di sistema.
Ciò che intendo è che Android funzionerà solo con animazioni espresse in file Xml res/anim che sono legati ai layout tramite xml. Alcuni widget RemoteView supportano questo
Un esempio di questo è il widget dell'app Notizie e Meteo che viene fornito su un sistema Android di magazzino. Quello che sta facendo è usare ViewFlipper per scorrere ogni notizia ogni 10 secondi circa.
<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>
In questo esempio è possibile associare intenti in sospeso a ogni TextView. Pertanto, quando un utente fa clic su uno, può verificarsi un'azione diversa.
Infine, Android ha aggiunto lentamente il supporto per le visualizzazioni animate in ciascuna versione. Ad esempio TransitionDrawables (selettore a dissolvenza incrociata) non cross-fade fino a Android 3.0.
fonte
2012-02-12 23:34:57
Guardando nella stessa , se lo avessi già fatto, sarebbe bello se tu potessi condividere la tua soluzione qui. – Bachi
Certo: proverò a trovare il tempo per scriverlo. In sostanza, il trucco consiste nel definire i layout in cui sono incorporate le animazioni iniziali, quindi impostare tali layout quando sono richieste animazioni. IIRC è necessario passare a un nuovo layout per attivare l'animazione, quindi potrebbe essere necessario disporre di più layout con la stessa animazione e alternare tra loro. È anche utile impostare un timer per tornare a una versione non animata del widget una volta completata l'animazione, altrimenti tornare alla schermata iniziale può attivare nuovamente l'animazione. – Adrian
quale si desidera controllare dal servizio in background, dal layout o dall'animazione? Potresti descrivere la domanda in dettaglio? – MoiTempete