我正在安卓上创建一个 2d 益智游戏,并希望获得社区对设计决策的意见。基本设计是这样的。有一个 SurfaceView ,其中 2d 图形在后台线程中绘制。然后我还有一个覆盖表面视图的RelativeLayout。布局 .xml 如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center" >
<SurfaceView
android:id="@+id/game_surface"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<RelativeLayout
android:id="@+id/game_overlay"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</RelativeLayout>
所有的触摸事件都将被 game_overlay 接收,并根据需要路由到游戏线程。我将使用 LayoutInflater 为布局充气并将它们放置在 game_overlay 中,然后在需要时清除 game_overlay。我做事的理由是两全其美。您无需在画布上绘制自己的自定义按钮(如重置级别按钮),而是利用所有强大的 android 布局功能。但是,您可以在后台执行游戏渲染,并使该线程始终保持活动状态。
所以现在回答我的问题。如果您之前尝试过这样的事情,我想听听您的经验。我可以期望为这样的分层视图支付性能损失吗?更重要的是,性能下降是否会损害应用程序的帧速率?您可以发现这种方法是否还有其他问题。