覆盖时我应该考虑视图翻译onDraw()
吗?或者它已经应用于画布翻译?
即我应该执行
canvas.translate(getTranslationX(), getTranslationY());
在第一行onDraw()
?
调用中应用于画布的所有转换是否会onDraw()
在后续调用中持续存在?即我应该假设canvas
每次都未转换吗?
覆盖时我应该考虑视图翻译onDraw()
吗?或者它已经应用于画布翻译?
即我应该执行
canvas.translate(getTranslationX(), getTranslationY());
在第一行onDraw()
?
调用中应用于画布的所有转换是否会onDraw()
在后续调用中持续存在?即我应该假设canvas
每次都未转换吗?
据我所知,画布不是持久的,因此您应该执行翻译。但是,您可以保存画布并恢复它:
http://maohao.wordpress.com/2009/09/30/canvas-save-canvas-restore/
Android View.onDraw() 总是有一个干净的画布
http://blahti.wordpress.com/2010/12/20/moving-views-in-android-part-1/
不,您不需要这样做。在调用 onDraw 之前应用视图的翻译。
正如 HardCoder 指出的那样,您对传递给 onDraw 的 Canvas 所做的状态更改不会持续到对 onDraw 的下一次调用。