Android共享元素转换使用imageswitcher产生图像闪烁

时间:2017-05-30 13:49:13

标签: android image android-transitions imageswitcher activity-transition

活动A有一个小的ImageSwitcher,它显示一个包含有关当前图像的图像和信息的流。

按下当前图像活动时,B将以全屏图像打开。您可以在此处继续观看图像流。

按此处的图像完成此活动并返回A。

存在从A到B的图像转换,其中较小的图像变大以适合B中的图像。

当从B返回A时,图像变小以适合A。

只需使用

,转换就可以顺利进行
Intent intent = new Intent(this, BActivity.class);
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(this, imageSwitcher,"imageInStream");
startActivity(intent, options.toBundle());

但是如果活动B中显示的图像已经更改为流中的下一个图像,那么当返回到活动A时,动画将以上一个图像的短暂闪烁结束。

我尝试过延迟过渡

protected void onResume() {
    super.onResume();
    postponeEnterTransition();
    // loading the image
    imageSwitcher.setImageDrawable(new BitmapDrawable(getResources(), imageBitmap));
    startPostponedEnterTransition();
}

我还尝试将startPostponedEnterTransition调用放在imageSwitcher的post方法中,但闪烁仍然存在。

所以出于某种原因,似乎imageSwitcher还没有改变图像,但我不知道如何解决这个问题。

0 个答案:

没有答案