#java #android #android_sdk #android_animation
Как анимировать 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 разметка, в которой описана эта кнопка:- Превью: И есть описание анимации поворота (возможно неправильно).
Ответы
Ответ 1
custom_icon.xmlmenu_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); } Ответ 2
Animation animation = AnimationUtils.loadAnimation(this, R.anim.alpha); item.startAnimation(animation); где item - это ваш кнопка
Комментариев нет:
Отправить комментарий