Wszędzie szukałem właściwego rozwiązania swojego problemu i nie mogę jeszcze go znaleźć. Mam ActionBar (ActionBarSherlock) z menu, które jest zawyżone z pliku XML i to menu zawiera jeden element, a ten jeden element jest wyświetlany jako 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>
czynność:
[...]
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.mymenu, menu);
return true;
}
[...]
Element ActionItem jest wyświetlany z ikoną i bez tekstu, jednak gdy użytkownik kliknie element ActionItem, chcę, aby ikona zaczęła się animować, a dokładniej obracać w miejscu. Ikona, o której mowa, to ikona odświeżania.
Zdaję sobie sprawę, że ActionBar obsługuje korzystanie z niestandardowych widoków ( dodawanie widoku akcji ), jednak ten niestandardowy widok jest rozszerzany, aby objąć cały obszar ActionBar i faktycznie blokuje wszystko oprócz ikony aplikacji, która w moim przypadku nie jest tym, czego szukałem .
Więc moją kolejną próbą było użycie AnimationDrawable i zdefiniowanie mojej animacji klatka po klatce, ustawienie rysowalnego jako ikony elementu menu, a następnie onOptionsItemSelected(MenuItem item)
pobranie ikony i rozpoczęcie animacji za pomocą ((AnimationDrawable)item.getIcon()).start()
. Nie udało się to jednak. Czy ktoś zna jakiś sposób na osiągnięcie tego efektu?