在 canvas.scale android 之后验证共享元素转换

validate sharedelement transition after canvas.scale android

我进行了几次 google 搜索,但无法弄清楚这一点。 我正在尝试复制 google 照片行为,即当捏合图像时图像会转换回原位。

一切正常。 唯一的问题是当向后过渡发生时,过渡发生在旧的全尺寸图像上。

为了更清楚,我缩放了 activity 的根视图的 canvas,以便 activity 中的所有内容都按比例缩小。 在这种情况下,rootview 中的内容只是一个图像。 在夹点结束时,比例因子将为 0.5f。 (正常尺寸的 50%) 然后 return 转换发生并且问题发生了。在动画之前,过渡会放大到原始 (100%) 大小,这使得 canvas 的缩放看起来从未发生过。

我希望这是清楚的英语不是我的母语。

代码:

    canvas.save(Canvas.MATRIX_SAVE_FLAG);
    canvas.scale(mScaleFactor, mScaleFactor,mScreenX,mScreenY);

    canvas.rotate(mRotationDegree,mScreenX,mScreenY);

    super.dispatchDraw(canvas);
    canvas.restore();

我发现canvas一路不更新,我在viewgroup

上转换成setScaleY和setScaleX