我将 GLSurfaceView 放在相机输出的顶部并在其上绘图。我有一个包含 SurfaceView 和 TextView 的常规布局:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<SurfaceView
android:id="@+id/cameraPreview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<TextView
android:id="@+id/nearest_place_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:textColor="#000"
android:textSize="30sp"
android:text="@string/empty" />
</RelativeLayout>
然后我以编程方式添加 GLSurfaceView:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bigarrow);
//...
cameraPreview = (SurfaceView) findViewById(R.id.cameraPreview);
mGLView = new MyGLSurfaceView(this);
addContentView(mGLView, new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
previewHolder = cameraPreview.getHolder();
previewHolder.addCallback(surfaceCallback);
previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
nearestPubLabel = (TextView) findViewById(R.id.nearest_place_label);
nearestPubLabel.setText(R.string.bigarrow_searching);
nearestPubLabel.setVisibility(View.VISIBLE);//clutching at straws
}
GLSurfaceView 是透明的,除了屏幕的一小块区域,我可以看到它下方的相机预览。但是我的 TextView 不可见。当我使用常规视图进行此设置时,TextView 是可见的。