У меня есть две Операции A и B. Я хочу иметь Анимацию уменьшения, когда Действие вызовы B и максимизируют анимацию, когда Действие B звонит A. Мне не нужны XML-файлы анимации для этого.
Когда мы называем другое Действие в Android, это дает свою анимацию по умолчанию, и затем это называет анимацию уменьшения.
То, что я хочу, - то, что анимация по умолчанию не должна происходить и анимация, которую я хочу, должен произойти.
Мы можем на самом деле дать анимацию при вызове другого Действия?
Начиная с API 16 вы можете предоставить пакет опций активности при вызове Context.startActivity(Intent, Bundle) или связанных методов. Он создается с помощью конструктора ActivityOptions:
Intent myIntent = new Intent(context, MyActivity.class);
ActivityOptions options =
ActivityOptions.makeCustomAnimation(context, R.anim.fade_in, R.anim.fade_out);
context.startActivity(myIntent, options.toBundle());
Не забудьте ознакомиться с другими методами конструктора ActivityOptions и ActivityOptionsCompat, если вы используете библиотеку поддержки.
API 5+:
Для приложений, ориентированных на уровень API 5+, существует метод Activities overridePendingTransition
. Он принимает два идентификатора ресурсов для входящей и исходящей анимации. Идентификатор 0
отключает анимацию. Вызовите его сразу после вызова startActivity
.
т.е.:
startActivity(new Intent(this, MyActivity.class));
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
API 3+:
Вы можете предотвратить анимацию по умолчанию (Slide in from the right) с помощью флага Intent.FLAG_ACTIVITY_NO_ANIMATION
в вашем намерении.
т.е.:
Intent myIntent = new Intent(context, MyActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
context.startActivity(myIntent);
затем в вашей Активности вы просто должны указать свою собственную анимацию.
Это также работает для API 1.5 (уровень 3).
Для этого необходимо использовать метод OverridePendingTransition, который находится в Класс активности . Образцы анимации в папке res / anim примера apidemos. Проверь это. Более того, проверьте демонстрацию в ApiDemos / App / Activity / animation .
Пример:
@Override
public void onResume(){
// TODO LC: preliminary support for views transitions
this.overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
}