目标是这样:获取Drawable
中的当前ImageView
,将其替换为由包含旧图片的新图片支持的BitmapDrawable
,然后在它们之间应用模块化转换。基本上只是:
TransitionDrawable extends BitmapDrawable
Drawable old;
List<TransitionModules> modules
draw(Canvas)
applyExitModules()
old.draw(canvas)
applyEntranceModules()
super.draw(canvas)
现在,调用old.draw(canvas)
确实会绘制旧图像,但是当旧版本是另一个Canvas.setMatrix(Matrix)
时,某些扩充(例如Drawable.setAlpha(int)
或TransitionDrawable
)似乎不会生效(可能是因为被覆盖的绘制(Canvas),我相信)。但是,Canvas上的缩放和翻译按预期工作。
作为一个注释,模块/绘图在入口动画上正常工作,但我相信这是因为过渡属性应用于BitmapDrawable
,它在调用时正确绘制。
什么有用:
Canvas.rotate
Canvas.scale
Canvas.translate
什么不:
Drawable.setAlpha (including attempts at applying the Alpha to the TransitionDrawable itself, then reverting)
Canvas.setMatrix
TL; DR :为什么上述某些过渡属性会影响Drawable.draw(Canvas)
的绘制,但我列出的其他属性却没有?