首页 > 解决方案 > Android 过渡动画 onBackPressed() 图像消失(释放缓冲区失败)

问题描述

不知道这是如何或为什么开始发生的,因为它曾经有效

我有一个图像视图,我在上面运行过渡动画(仍然有效)

Intent i = new Intent(thisActivity, NewActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
View imageContainer = findViewById(R.id.image_container);
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(thisActivity, imageContainer, "logo_transition");
startActivity(i, options.toBundle());

当我在 NewActivity 中调用 super.onBackPressed() 时,它用于反转过渡并且看起来非常漂亮。现在,图像消失了,这出现在 logcat

BufferItemConsumer: [unnamed-6194-5] Failed to release buffer: Unknown error -1 (1)

样式.xml

<item name="android:windowSharedElementEnterTransition">@transition/change_image_transform</item>
<item name="android:windowSharedElementExitTransition">@transition/change_image_transform</item>

过渡/change_image_transform.xml

<transitionSet
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="375"
    android:interpolator="@android:interpolator/fast_out_slow_in"
    android:transitionOrdering="together"
    android:startDelay="50">
    <changeClipBounds/>
    <changeTransform/>
    <changeBounds/>
</transitionSet>

MainActivity.xml

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:src="@drawable/company_logo"
    android:id="@+id/image_container"
    android:transitionName="logo_transition"/>

新活动.xml

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:adjustViewBounds="true"
    android:maxWidth="500dp"
    android:maxHeight="300dp"
    android:src="@drawable/company_logo"
    android:layout_margin="25dp"
    android:transitionName="logo_transition"
    android:id="@+id/logo_container"/>

标签: javaandroid

解决方案


推荐阅读