7 ответов:
в том же операторе, в котором вы выполняете finish (), выполните свою анимацию там же. Затем в новом действии запустите другую анимацию. Смотрите этот код:
fadein.xml
<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true"> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500"/> //Time in milliseconds </set>в вашем финишном классе
private void finishTask() { if(blabbla==blablabla){ finish(); runFadeAnimation(); } } private void runFadeInAnimation() { Animation a = AnimationUtils.loadAnimation(this, R.anim.fadein); a.reset(); LinearLayout ll = (LinearLayout) findViewById(R.id.yourviewhere); ll.clearAnimation(); ll.startAnimation(a); }затухание.xml
<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true"> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500"/> </set>В Вашем новом классе Activity вы создаете аналогичный метод, такой как runFadeAnimation, который я написал, а затем запускаете его в onCreate и не забудьте изменить идентификатор ресурсов на fadeout.
начиная с уровня API 5 Вы можете немедленно вызвать overridePendingTransition, чтобы указать явную анимацию перехода:
startActivity(); overridePendingTransition(R.anim.hold, R.anim.fade_in);или
finish(); overridePendingTransition(R.anim.hold, R.anim.fade_out);
см темы на android:http://developer.android.com/guide/topics/ui/themes.html.
под темы.xml должно быть
android:windowAnimationStyleгде вы можете увидеть объявление стиля в стили.xml.пример реализации:
<style name="AppTheme" parent="..."> ... <item name="android:windowAnimationStyle">@style/WindowAnimationStyle</item> </style> <style name="WindowAnimationStyle"> <item name="android:windowEnterAnimation">@android:anim/fade_in</item> <item name="android:windowExitAnimation">@android:anim/fade_out</item> </style>
использовать
overridePendingTransitionstartActivity(); overridePendingTransition(R.anim.fadein, R.anim.fadeout);fadein.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" /> </set>затухание.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/anticipate_interpolator" android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" /> </set>
на fadeIn и затухание, только добавить после супер.onCreate (savedInstanceState) в Вашем новом классе активности. Вам не нужно создавать что-то еще (без XML, без папки anim, без дополнительной функции).
overridePendingTransition(R.anim.abc_fade_in,R.anim.abc_fade_out);
Вы можете просто создать контекст и сделать что-то вроде ниже:-
private Context context = this;и анимации:-
((Activity) context).overridePendingTransition(R.anim.abc_slide_in_bottom,R.anim.abc_slide_out_bottom);вы можете использовать любую анимацию, которую вы хотите.
Если вы всегда хотите одну и ту же анимацию перехода для действия
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); @Override protected void onPause() { super.onPause(); if (isFinishing()) { overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); } }
Comments