J'ai été à la recherche partout pour une bonne solution à mon problème et je n'arrive pas à en trouver un encore. J'ai une ActionBar (ActionBarSherlock) avec un menu qui se gonfle à partir d'un fichier XML et que le menu contient un élément et un élément est présenté 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;
}
[...]
Le ActionItem est affiché avec une icône et le texte n'toutefois, lorsqu'un utilisateur clique sur le ActionItem, je veux l'icône pour démarrer l'animation, plus particulièrement, en tournant en place. L'icône en question est une icône d'actualisation.
Je me rends compte que ActionBar a en charge l'utilisation de vues personnalisées (l'Ajout d'une Action Vue) cependant cette vue personnalisée est élargi pour couvrir l'ensemble de la zone de l'ActionBar et bloque effectivement tout à l'exception de l'icône de l'application, ce qui dans mon cas n'est pas ce que je cherchais.
Donc ma prochaine tentative a été d'essayer d'utiliser AnimationDrawable et de définir mon animation image par image, définissez le drawable comme l'icône de l'élément de menu, puis en onOptionsItemSelected(MenuItem item)
obtenir l'icône et de commencer à animer à l'aide de ((AnimationDrawable)item.getIcon()).start()
. Toutefois, cela a été un échec. Personne ne sait de toute façon de réaliser cet effet?