Ответ 1
Начиная с 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+ существует метод overridePendingTransition
. Для входящих и исходящих анимаций требуется два идентификатора ресурсов. Идентификатор 0
отключит анимацию. Вызовите это сразу после вызова startActivity
.
то есть:.
startActivity(new Intent(this, MyActivity.class));
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
API 3 +:
Вы можете предотвратить анимацию по умолчанию (Слайд справа) с флагом Intent.FLAG_ACTIVITY_NO_ANIMATION
в ваших намерениях.
то есть:.
Intent myIntent = new Intent(context, MyActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
context.startActivity(myIntent);
то в вашей деятельности вам просто нужно указать свою собственную анимацию.
Это также работает для 1.5 API (уровень 3).