Ich habe überall nach einer geeigneten Lösung für mein Problem gesucht und kann noch keine finden. Ich habe eine ActionBar (ActionBarSherlock) mit einem Menü, das aus einer XML-Datei aufgeblasen wird. Dieses Menü enthält ein Element und dieses Element wird als ActionItem angezeigt.
Speisekarte:
<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>
Aktivität:
[...]
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.mymenu, menu);
return true;
}
[...]
Das ActionItem wird mit einem Symbol und ohne Text angezeigt. Wenn ein Benutzer jedoch auf das ActionItem klickt, soll das Symbol animiert werden, genauer gesagt, an Ort und Stelle gedreht werden. Das betreffende Symbol ist ein Aktualisierungssymbol.
Mir ist klar, dass ActionBar die Verwendung von benutzerdefinierten Ansichten unterstützt ( Hinzufügen einer Aktionsansicht ). Diese benutzerdefinierte Ansicht wird jedoch erweitert, um den gesamten Bereich der ActionBar abzudecken, und blockiert tatsächlich alles außer dem App-Symbol, das in meinem Fall nicht das ist, wonach ich gesucht habe .
Mein nächster Versuch war also, AnimationDrawable zu verwenden und meine Animation Frame für Frame zu definieren, das Drawable als Symbol für den Menüpunkt festzulegen und dann onOptionsItemSelected(MenuItem item)
das Symbol abzurufen und mit der Animation zu beginnen ((AnimationDrawable)item.getIcon()).start()
. Dies war jedoch erfolglos. Kennt jemand einen Weg, um diesen Effekt zu erzielen?