Od API 16 możesz dostarczyć pakiet opcji aktywności podczas wywoływania Context.startActivity (Intent, Bundle) lub powiązanych metod. Jest tworzony za pomocą kreatora 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());
Nie zapomnij sprawdzić innych metod kreatora ActivityOptions i ActivityOptionsCompat, jeśli korzystasz z biblioteki pomocy technicznej.
API 5+:
W przypadku aplikacji przeznaczonych dla poziomu API 5+ istnieje overridePendingTransition
metoda Działania . Animacje przychodzące i wychodzące wymagają dwóch identyfikatorów zasobów. Identyfikator 0
wyłączy animacje. Zadzwoń natychmiast po startActivity
rozmowie.
to znaczy:
startActivity(new Intent(this, MyActivity.class));
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
API 3+:
Możesz zablokować domyślną animację (wsuń się z prawej strony), umieszczając Intent.FLAG_ACTIVITY_NO_ANIMATION
flagę w zamiarze.
to znaczy:
Intent myIntent = new Intent(context, MyActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
context.startActivity(myIntent);
następnie w swoim działaniu musisz po prostu określić własną animację.
Działa to również w przypadku interfejsu API 1.5 (poziom 3).
R.anim.fade_in
nadal nie jest animacją pliku xml, którą przypuszczamy, że mamy w niejres\anim
?Aby to osiągnąć, należy użyć metody OverridePendingTransition, która znajduje się w klasie Activity . Przykładowe animacje w folderze res / anim przykładu apidemos. Sprawdź to. Więcej niż sprawdź demo w ApiDemos / App / Activity / Animation .
Przykład:
źródło
super.onResume();
, otrzymywałem: „android.util.SuperNotCalledException: Activity {com.abc.MyActivity} nie nawiązało połączenia z super.onResume ()”Napisałem samouczek, abyś mógł animować wchodzenie i wychodzenie swojej aktywności,
Cieszyć się:
http://blog.blundellapps.com/animate-an-activity/
źródło
Jelly Bean obsługuje to za pomocą metody ActivityOptions.makeCustomAnimation () . Oczywiście, ponieważ jest tylko na Jelly Bean, jest praktycznie bezwartościowy ze względów praktycznych.
źródło
ActivityOptionsCompat
jeśli kierujesz reklamy przed JellyBean.