小编Han*_*uff的帖子

不调用surfaceCreated

我正在尝试将相机预览(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)

android surfaceview

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×1

surfaceview ×1