keshav
keshav

Reputation: 3255

Device hangs when using custom animation

I am using

@Override
public void onCreate(Bundle savedInstanceState) {
    overridePendingTransition(R.anim.activity_open_translate,R.anim.activity_close_scale);
    //...
}

and this

@Override
protected void onPause() {
    super.onPause();
    overridePendingTransition(R.anim.activity_open_scale,R.anim.activity_close_translate);
}

for animating my activities.

It works fine on some devices like Samsung S3 but it makes few devices hang like MTS N790.

Is there another way to use animations which can work on all devices?

activity_open_translate.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="100%"
        android:toXDelta="0%"
        android:duration="@android:integer/config_mediumAnimTime" />
</set>

activity_close_scale.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale android:fromXScale="100%p"
        android:toXScale="80%p"
        android:fromYScale="100%p"
        android:toYScale="80%p"
        android:pivotX="50%p"
        android:pivotY="50%p"
        android:duration="@android:integer/config_mediumAnimTime" />

    <alpha android:fromAlpha="1"
        android:toAlpha="0.5"
        android:duration="@android:integer/config_mediumAnimTime"/>
</set>

activity_open_scale.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale android:fromXScale="80%p"
        android:toXScale="100%p"
        android:fromYScale="80%p"
        android:toYScale="100%p"
        android:pivotX="50%p"
        android:pivotY="50%p"
        android:duration="@android:integer/config_mediumAnimTime" />

    <alpha android:fromAlpha="0.5"
        android:toAlpha="1.0"
        android:duration="@android:integer/config_mediumAnimTime"/>
</set>

activity_close_translate

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0%"
        android:toXDelta="100%"
        android:duration="@android:integer/config_mediumAnimTime" />
</set>

Upvotes: 0

Views: 330

Answers (1)

Dr TJ
Dr TJ

Reputation: 3354

In my case the error was about setting wrong Interpolator for the set tag. Some interpolators does not match with some animations.

Upvotes: 1

Related Questions