Я искал всюду для правильного решения моей проблемы, и я пока не могу найти ее. У меня есть ActionBar (ActionBarSherlock) с меню, которое накачивается из файла XML, и это меню содержит один элемент и один элемент отображается как ActionItem.
меню:
<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>
активность:
[...]
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.mymenu, menu);
return true;
}
[...]
ActionItem отображается со значком и без текста, однако, когда пользователь нажимает на ActionItem, я хочу, чтобы значок начал анимацию, а точнее, вращался на месте. Значок, о котором идет речь, является значком обновления.
Я понимаю, что ActionBar поддерживает использование пользовательских представлений (Добавление вида действия), однако это настраиваемое представление расширяется для охвата всей области ActionBar и фактически блокирует все, кроме значка приложения, которое в моем случае не то, что я искал.
Итак, моя следующая попытка состояла в том, чтобы попытаться использовать AnimationDrawable и определить мою анимацию по кадру, установить drawable как значок для элемента меню, а затем в onOptionsItemSelected(MenuItem item)
получить значок и начать анимацию с помощью ((AnimationDrawable)item.getIcon()).start()
, Однако это не увенчалось успехом. Кто-нибудь знает какой-либо способ достичь этого эффекта?