我在开始时发现fresco的SimpleDraweeView存在问题。 但是我用android ImageView替换后问题仍然存在。 所以我无法确定问题是由于Android还是仅仅是壁画。
问题是什么
然而,在我的私人项目中,以及在示例项目中
https://github.com/JackFan-Z/ActivitySharedElementTransition
ImageView以scaleType" fitCenter"开头,这是错误的。
我尝试推迟共享元素转换,并在SharedElementCallback的回调中设置不同scaleType的共享元素。但它们都没有真正起作用。谁能帮助弄清楚出了什么问题,或者在哪里调试?
问题的屏幕截图
答案 0 :(得分:2)
正如您在ImageView
观察到的那样,这是Android限制。但是,我正在对Fresco比例类型进行一些更改,一旦推送更改,就可以执行此操作。
简而言之,ScaleType不是Scaleum(非常不灵活),而是将ScaleType更改为可以实现任意缩放的接口。这一变化已在内部登陆,很快将被推送到GitHub。
除了上述内容之外,我正在研究InterpolatingScaleType的实现,它只是根据插值(0.0 - 1.0)在两个基础比例类型之间进行插值。值0.0返回与基础scaleType1相同的转换,而值1.0返回与基础scaleType2相同的转换。中间值是两者之间的线性组合。
InterpolatingScaleType允许在两种不同的比例类型之间平滑插值,这在动画中非常方便,例如在进行视图转换时。
一旦准备就绪,我将更新此答案。
编辑:
@burzumrus非常友好地提供了一个可以在GitHub找到的实现。在Fresco的GitHub页面上还有thread这个问题。