J'ai cherché partout une solution appropriée à mon problème et je n'arrive pas encore à en trouver une. J'ai une ActionBar (ActionBarSherlock) avec un menu qui est gonflé à partir d'un fichier XML et ce menu contient un élément et cet élément est affiché comme un ActionItem.
menu:
<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>
activité:
[...]
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.mymenu, menu);
return true;
}
[...]
L'ActionItem est affiché avec une icône et pas de texte, mais lorsqu'un utilisateur clique sur l'ActionItem, je veux que l'icône commence à s'animer, plus précisément, à tourner sur place. L'icône en question est une icône de rafraîchissement.
Je me rends compte qu'ActionBar prend en charge l'utilisation de vues personnalisées ( Ajout d'une vue d'action ), mais cette vue personnalisée est étendue pour couvrir toute la zone de l'ActionBar et bloque en fait tout sauf l'icône de l'application, qui dans mon cas n'est pas ce que je recherchais .
Ma prochaine tentative a donc été d'essayer d'utiliser AnimationDrawable et de définir mon animation image par image, de définir le dessinable comme icône de l'élément de menu, puis d' onOptionsItemSelected(MenuItem item)
obtenir l'icône et de commencer à animer en utilisant ((AnimationDrawable)item.getIcon()).start()
. Cela a cependant échoué. Quelqu'un connaît-il un moyen d'accomplir cet effet?