我正在尝试将相机预览(SurfaceView)与显示屏上的按钮放在一起,但我得到的只是一个空白屏幕,只显示按钮.如果我将SurfaceView设置为唯一的内容(使用setContentView(surfaceView),那么预览在屏幕上显示正常.我做错了什么?
提前致谢
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="0px"
android:layout_weight="1">
<SurfaceView
android:id="@+id/camera_surface"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/trigger"
android:id="@+id/trigger_picture_button"
android:layout_gravity="bottom" />
</FrameLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我的活动:
public class CameraActivity extends Activity {
private SurfaceView cameraPreview;
private Button triggerPicture;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.camera);
cameraPreview = (SurfaceView) findViewById(R.id.camera_surface);
triggerPicture = (Button) findViewById(R.id.trigger_picture_button);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
cameraPreview = new CameraPreview(this);
// setContentView(cameraPreview);
}
Run Code Online (Sandbox Code Playgroud)
我的CameraPreview:
public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback {
private SurfaceHolder holder;
private Camera camera; …Run Code Online (Sandbox Code Playgroud)