Я везде искал подходящее решение своей проблемы и пока не могу его найти. У меня есть 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()
. Однако это было безуспешно. Кто-нибудь знает, как добиться такого эффекта?