活动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还没有改变图像,但我不知道如何解决这个问题。