我会在屏幕的中间部分(蓝色)使用 FrameLayout,添加一个 ImageView,其中包含要显示的 BackgroundImage,然后将 GLSurfaceView 放在它上面。
由于纵横比始终相同,您可以将 ImageViews 设置为适合 xy,并且图像应该始终看起来相同。
假设您正在使用一个简单的 SurfaceView,用于放置 ImageView 的 xml 代码 id 看起来像这样
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:layout_height="match_parent"
android:layout_width="match_parent"/>
<SurfaceView
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
因为我不知道你如何构建你的视图,所以我不能发布完成这项工作的代码,但只需将一个 FrameLayout 而不是你的 GLSurfaceView 添加到你的视图中,具有相同的尺寸,GLSurfaceView 就会有。
首先向该 FrameLayout 添加 ImageView,然后添加 GLSurfaceView。高度和宽度都设置为 match_parent。
要弄清楚 SurfaceView 的大小...
- 检索显示尺寸
- 减去绿条尺寸
- 计算Blue View的大小,得到Height/Width(以较大者为准)计算缺失的Dimension
- 将红色视图设置为占用空白空间。
所以你必须以编程方式执行此操作:)