在BitmapDrawable中从ImageView.getDrawable()绘制Drawable

时间:2016-04-13 20:00:39

标签: java android

目标是这样:获取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)的绘制,但我列出的其他属性却没有?

0 个答案:

没有答案