Tuesday, December 12, 2017

Android transitions: плавное появление и исчезновение

Уж что-то я очень давно ничего не писал, надо бы это исправить:)
Изменим стандартные появления нового активити и его закрытия. Сделаем его плавно появляющимся.
Создаем анимации:
R.anim.activity_open_enter
<set    xmlns:android="http://schemas.android.com/apk/res/android"    android:shareInterpolator="false"    android:zAdjustment="top"    android:duration="2500">
    <alpha        android:duration="@android:integer/config_shortAnimTime"        android:fillAfter="false"        android:fillBefore="false"        android:fillEnabled="true"        android:fromAlpha="0.0"        android:interpolator="@android:interpolator/decelerate_cubic"        android:toAlpha="1.0" />
    <scale        android:duration="@android:integer/config_shortAnimTime"        android:fillAfter="false"        android:fillBefore="false"        android:fillEnabled="true"        android:fromXScale="1.1"        android:fromYScale="1.1"        android:interpolator="@android:interpolator/decelerate_quint"        android:pivotX="50%p"        android:pivotY="50%p"        android:toXScale="1.0"        android:toYScale="1.0" />
</set>
 
R.anim.activity_close_bottom
<set    xmlns:android="http://schemas.android.com/apk/res/android"    android:shareInterpolator="false"    android:zAdjustment="bottom"    android:duration="2500">
    <alpha        android:duration="@android:integer/config_shortAnimTime"        android:fillAfter="false"        android:fillBefore="false"        android:fillEnabled="true"        android:fromAlpha="0.0"        android:interpolator="@android:interpolator/decelerate_cubic"        android:toAlpha="1.0" />
    <scale        android:duration="@android:integer/config_shortAnimTime"        android:fillAfter="false"        android:fillBefore="false"        android:fillEnabled="true"        android:fromXScale="1.1"        android:fromYScale="1.1"        android:interpolator="@android:interpolator/decelerate_quint"        android:pivotX="50%p"        android:pivotY="50%p"        android:toXScale="1.0"        android:toYScale="1.0" />
</set>
Ну, а далее дело не хитрое - применяем анимацию  к старту активити и, 
соотвественно, к окончанию. Тут главный момент, устранить стандартную анимацию, поэтому добавляем 
OverridePendingTransition.
startActivity(intent);
overridePendingTransition(R.anim.activity_open_enter,0);   
 
@Overridepublic void finish() {
    super.finish();
    overridePendingTransition(R.anim.activity_close_bottom,0);
} 

No comments:

Post a Comment