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