Страницы

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

воскресенье, 22 декабря 2019 г.

Анимация icon в ActionBar

#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.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); }

Ответ 2



Animation animation = AnimationUtils.loadAnimation(this, R.anim.alpha); item.startAnimation(animation); где item - это ваш кнопка

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

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