【问题标题】:canvas on android安卓上的画布
【发布时间】:2011-08-07 15:04:07
【问题描述】:

我是 android 图形新手,在了解图形子系统的过程中,我已经阅读了许多网上可用的文档。

仍然让我感到困惑的一件事是有一个用于 2d 绘图的画布 API。根据可用的文档,它在内部使用skia进行绘制。

现在,这个画布与重绘期间表面返回的画布不同吗?例如,如果有一个 GLsurfaceview 具有 3d 渲染,它会使用 2d canvas API 在画布上绘制并最终在表面上绘制吗?

【问题讨论】:

    标签: android graphics


    【解决方案1】:

    Canvas 和 OpenGL 是独立的 API。 Canvas 不使用 OpenGL afaik。 OpenGL 有自己的低级函数来处理 2D 内容。事实上,您也可以使用 Open GL 进行 2D。

    【讨论】:

    • 你是对的。我知道 canvas api 与 OpenGL API 不同。当我使用 openGL api 时,我使用了 Glsurfaceview。当需要重新绘制 glsurfaceview 时,我会得到一个画布。这是什么画布?无法破译两者。
    • 是canvas api使用skia在canvas上绘制。 opengl es 渲染 3d 的方式相同,当最终转换为 2d(用于显示)时,使用与 canvas api 使用 skia 绘制到画布相同的重绘机制??
    • 不,我认为这不对。帆布就是这个 - developer.android.com/reference/android/graphics/Canvas.html 。 OpenGL 有这些类集 - developer.android.com/reference/android/opengl/… 。那里有 GLSurfaceView 类,但我在 Open GL ES API 中看不到 Canvas 类。
    【解决方案2】:

    如果我错了,请纠正我。Glsurfaceview 类进一步继承了使用 canvas 的 android.view.SurfaceView 。

    【讨论】:

    • 刚刚从进一步阅读中发现 surfaceview 使用 canvas 而 GLsurfaceview 使用 opengl 。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多