我将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是可见的。
答案 0 :(得分:0)
我切换到从XML加载GLSurfaceView而不是使用addContentView
,现在可以看到TextView。不解释以前的方法有什么问题,但我现在很高兴。