Как оживить текущую активность (не переход)? - PullRequest
0 голосов
/ 27 февраля 2019

Интересно, как оживить текущую активность, а не переход между действиями.Например, я хочу немного сместить упражнение влево, а затем переместить его назад, чтобы оно выглядело как небольшой эффект встряхивания.Есть идеи?Спасибо

Ответы [ 3 ]

0 голосов
/ 27 февраля 2019

Основная идея заключается в том, чтобы получить доступ к корневому макету действия, а затем выполнить некоторые анимации для него, например, если вы используете DataBindung, это просто так (но не лучшая идея для вида анимации, который вы хотите):

    binding.getRoot().animate().rotation(-5).setDuration(500).setListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            binding.getRoot().animate().rotation(5).setDuration(1000).setListener(new AnimatorListenerAdapter() {
                @Override
                public void onAnimationEnd(Animator animation) {
                    binding.getRoot().animate().rotation(0).setDuration(500);
                }
            });
        }
    });
0 голосов
/ 27 февраля 2019

Наконец-то я нашел решение:

    Animation animation = new TranslateAnimation(
            Animation.RELATIVE_TO_PARENT, 0.0f,
            Animation.RELATIVE_TO_PARENT, -0.05f,
            Animation.RELATIVE_TO_PARENT, 0.0f,
            Animation.RELATIVE_TO_PARENT, 0.0f);
    animation.setDuration(100);
    animation.setInterpolator(new AccelerateInterpolator());
    animation.setRepeatCount(1);
    animation.setRepeatMode(Animation.REVERSE);

    View viewActivity = findViewById(android.R.id.content);
    if (viewActivity != null)
        viewActivity.startAnimation(animation);
0 голосов
/ 27 февраля 2019

вам нужно создать экземпляр анимации, как показано ниже

 Animation startAnimation = AnimationUtils.loadAnimation(context, R.anim.shaking_animation);

, затем вам нужно запустить эту анимацию с родительским макетом

   parent_layout.startAnimation(startAnimation);

здесь вы можете получить анимацию встряхивания встряхивание/ Воббл анимация просмотра в Android

наконец вы можете очистить анимацию, как показано ниже

parent_layout.clearAnimation();
...