【问题标题】:Is onDraw() necessary in SurfaceView?SurfaceView 中是否需要 onDraw()?
【发布时间】:2014-03-07 08:44:47
【问题描述】:

我参考了许多网站以及 Android 的文档,但我仍然对此感到困惑,

onDraw() 方法在ViewSurfaceView 中都是必需的。

有人可以解释一下如何在使用onDraw() 和不使用onDraw() 方法时在ViewSurfaceView 中绘制任何东西吗?

谢谢。

【问题讨论】:

  • 是的,在这两种情况下,您都可以通过覆盖 onDraw() 方法进行绘制。

标签: android view surfaceview difference


【解决方案1】:

SurfaceView 中是不必要的,在View 中是因为你有机会获得对画布的引用,所以你可以向视图添加额外的形状/位图,但是表面视图有一个强大的补充类, SurfaceHolder 有一个 lockCanvas 方法,该方法返回对表面视图画布的引用(无需覆盖 onDraw),最重要的是,使用 lockCanvas 您可以完成所有形状的绘制和处理/位图 ASYNCHRONOUSLY(使用 unlockCanvasAndPost 发布您的更改),与 onDraw 不同,它依赖于主线程和要执行的视图的失效...

希望对你有帮助。

问候

【讨论】:

    猜你喜欢
    • 2011-09-19
    • 2011-09-09
    • 1970-01-01
    • 2011-08-04
    • 2013-03-11
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多