Страницы

Поиск по вопросам

вторник, 13 ноября 2018 г.

Анимация icon в ActionBar

Как анимировать icon при нажатии?
Так я получаю это самое меню:
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; }
В меня есть Activity, в которой есть выездное меню. Есть переписаный метод, который срабатывает при нажатии кнопки, как добавить возможность анимировать её? А именно покрутить её на 360 градусов.
@Override public boolean onOptionsItemSelected(MenuItem item) {
if (mDrawerLayout.isShown()) mDrawerLayout.closeDrawers(); else mDrawerLayout.openDrawer(Gravity.RIGHT);
return super.onOptionsItemSelected(item); }
XML разметка, в которой описана эта кнопка:


Превью:
И есть описание анимации поворота (возможно неправильно).


Ответ


custom_icon.xml

menu_main.xml



rotate_icon.xml
Анимация как у Вас, только изменен интерполятор и duration.

MainActivity.class
public class MainActivity extends AppCompatActivity {
ImageView iv;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); iv = (ImageView)inflater.inflate(R.layout.custom_icon, null);
iv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Animation rotation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rotate_icon); iv.startAnimation(rotation); Toast.makeText(getApplicationContext(), "find is selected", Toast.LENGTH_SHORT).show(); } }); }
@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater menuInflater = getMenuInflater(); menuInflater.inflate(R.menu.menu_main, menu); menu.findItem(R.id.action_settings).setActionView(iv); return super.onCreateOptionsMenu(menu); }

Комментариев нет:

Отправить комментарий