我是Android的新手,我对视图的工作方式感到困惑;只是按照教程,但我试图偏离它
所以我有一个活动,我在onCreate中有这一行: setContentView(new GamePanel(this));
GamePanel是一个扩展SurfaceView的类;它使用画布将内容绘制到屏幕上
我想在屏幕上添加一个按钮;有没有办法做到这一点?任何能提供onClick方法的东西都可以...在画布上绘制它并让它可以点击吗?
答案 0 :(得分:0)
SurfaceView有两个部分,Surface和View。避免扩展SurfaceView。如果要在View上绘制,则子类化很有用,但大多数应用只想在Surface上绘制。如果你是SurfaceView的子类,你将可以同时访问它们,如果这不是你想要的,那么很容易编写出奇怪的代码。
如果您想要基于视图的UI元素,请不要尝试将它们放在Surface上。默认情况下,Surface位于View UI图层后面,因此将UI元素置于顶部是自动的。
您可以在Grafika中找到一些示例。 “多表面测试”具有多个Canvas渲染的重叠SurfaceViews,它比您想要的多一点,但它展示了您的需求。其他示例在OpenGL ES渲染之上具有UI元素。