在 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
我进行了几次 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