Как анимировать 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); }
Комментариев нет:
Отправить комментарий