如何向扩展 SurfaceView 的 class 添加视图
How to add view to class that extends SurfaceView
我是 Android 的新手,我对视图的工作方式感到困惑;只是遵循教程,但我正试图偏离它
所以我有一个 activity,我在 onCreate 中有这一行:
setContentView(新游戏面板(这个));
GamePanel 是一个扩展 SurfaceView 的 class;它使用 canvas 将内容绘制到屏幕上
我想在屏幕上添加一个按钮;有没有办法做到这一点?任何提供 onClick 方法的东西都可以...是否可以将其绘制在 canvas 上并使其可点击?
SurfaceView 有两部分,Surface 和View。避免扩展 SurfaceView。如果你想在 View 上绘制,子类化很有用,但大多数应用程序只想在 Surface 上绘制。如果您将 SurfaceView 子类化,您将可以访问这两者,如果这不是您想要的,则很容易编写行为异常的代码。
如果您想要基于视图的 UI 元素,请不要尝试将它们放在 Surface 上。默认情况下,Surface 位于 View UI 层后面,因此将 UI 元素放在顶部是自动的。
您可以在 Grafika 中找到一些示例。 "multi-surface test" 具有多个 Canvas 渲染的重叠 SurfaceView,这比您想要的要多一些,但它演示了您的需要。其他示例在 OpenGL ES 渲染之上有 UI 个元素。
我是 Android 的新手,我对视图的工作方式感到困惑;只是遵循教程,但我正试图偏离它
所以我有一个 activity,我在 onCreate 中有这一行: setContentView(新游戏面板(这个));
GamePanel 是一个扩展 SurfaceView 的 class;它使用 canvas 将内容绘制到屏幕上
我想在屏幕上添加一个按钮;有没有办法做到这一点?任何提供 onClick 方法的东西都可以...是否可以将其绘制在 canvas 上并使其可点击?
SurfaceView 有两部分,Surface 和View。避免扩展 SurfaceView。如果你想在 View 上绘制,子类化很有用,但大多数应用程序只想在 Surface 上绘制。如果您将 SurfaceView 子类化,您将可以访问这两者,如果这不是您想要的,则很容易编写行为异常的代码。
如果您想要基于视图的 UI 元素,请不要尝试将它们放在 Surface 上。默认情况下,Surface 位于 View UI 层后面,因此将 UI 元素放在顶部是自动的。
您可以在 Grafika 中找到一些示例。 "multi-surface test" 具有多个 Canvas 渲染的重叠 SurfaceView,这比您想要的要多一些,但它演示了您的需要。其他示例在 OpenGL ES 渲染之上有 UI 个元素。