Tenho procurado em todos os lugares por uma solução adequada para o meu problema e não consigo encontrar uma ainda. Eu tenho uma ActionBar (ActionBarSherlock) com um menu que é inflado a partir de um arquivo XML e esse menu contém um item e esse item é mostrado como um ActionItem.
cardápio:
<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>
atividade:
[...]
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.mymenu, menu);
return true;
}
[...]
O ActionItem é exibido com um ícone e sem texto, no entanto, quando um usuário clica no ActionItem, quero que o ícone comece a ser animado, mais especificamente, girando no lugar. O ícone em questão é um ícone de atualização.
Eu percebo que a ActionBar tem suporte para o uso de visualizações personalizadas ( adicionando uma visualização de ação ), no entanto, esta visualização personalizada é expandida para cobrir toda a área da ActionBar e realmente bloqueia tudo, exceto o ícone do aplicativo, que no meu caso não é o que eu estava procurando .
Então, minha próxima tentativa foi tentar usar o AnimationDrawable e definir minha animação quadro a quadro, definir o drawable como o ícone do item de menu e, em seguida, onOptionsItemSelected(MenuItem item)
obter o ícone e começar a animar usando ((AnimationDrawable)item.getIcon()).start()
. No entanto, isso não foi bem-sucedido. Alguém conhece alguma maneira de conseguir esse efeito?