Ho cercato ovunque una soluzione adeguata al mio problema e non riesco ancora a trovarne una. Ho un ActionBar (ActionBarSherlock) con un menu che viene gonfiato da un file XML e quel menu contiene un elemento e quell'elemento viene mostrato come ActionItem.
menù:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_refresh"
android:icon="@drawable/ic_menu_refresh"
android:showAsAction="ifRoom"
android:title="Refresh"/>
</menu>
attività:
[...]
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.mymenu, menu);
return true;
}
[...]
ActionItem viene visualizzato con un'icona e senza testo, tuttavia quando un utente fa clic su ActionItem, voglio che l'icona inizi ad animarsi, più specificamente, ruotando sul posto. L'icona in questione è un'icona di aggiornamento.
Mi rendo conto che ActionBar ha il supporto per l'utilizzo di visualizzazioni personalizzate ( aggiunta di una visualizzazione azione ) tuttavia questa visualizzazione personalizzata è espansa per coprire l'intera area della ActionBar e in realtà blocca tutto tranne l'icona dell'app, che nel mio caso non è quello che stavo cercando .
Quindi il mio tentativo successivo è stato quello di provare a utilizzare AnimationDrawable e definire la mia animazione fotogramma per fotogramma, impostare il disegnabile come icona per la voce di menu, quindi onOptionsItemSelected(MenuItem item)
ottenere l'icona e iniziare ad animare utilizzando ((AnimationDrawable)item.getIcon()).start()
. Questo però non ha avuto successo. Qualcuno sa come ottenere questo effetto?