Android布局:如何将此视图组放入RelativeLayout中?

Android布局:如何将此视图组放入RelativeLayout中?,android,Android,嗨,如何使这个代码工作?我想让这个类CameraSurfaceView放在一个相对的布局中 代码: public class CameraSurfaceView extends ViewGroup implements SurfaceHolder.Callback{ private final String TAG = "Preview"; private SurfaceView mSurfaceView; private SurfaceHolder mHolder;

嗨,如何使这个代码工作?我想让这个类CameraSurfaceView放在一个相对的布局中

代码:

public class CameraSurfaceView extends ViewGroup  implements SurfaceHolder.Callback{
    private final String TAG = "Preview";

    private SurfaceView mSurfaceView;
    private SurfaceHolder mHolder;
    private Size mPreviewSize;
    private List<Size> mSupportedPreviewSizes;
    private Camera mCamera;

    public CameraSurfaceView(Context context) {
        super(context);

        mSurfaceView = new SurfaceView(context);
        addView(mSurfaceView);

        mHolder = mSurfaceView.getHolder();
        mHolder.addCallback(this);
        mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

    }
     ...
}
xml:



感谢大家的帮助。

只需更改
即可,无需创建实例

       cameraSurfaceView = new CameraSurfaceView(this);
只需通过setContentView设置布局。另外,在xml中设置

      <SurfaceView in your xml with <your.package.CameraSurfaceView

抱歉@zrgiu,但我对android真的是新手,我明白你的意思,但我不知道如何编写代码。你能给我一些示例代码吗?这就是我在xml中看到的:嘿@marvz,用代码查看更新的响应。这就是您要查找的内容吗?我在@zrgiu:无法启动活动组件信息{com.sample.video/com.sample.video.MainActivity}时出错。android.view.InflateException
public class MainActivity extends Activity{
    RelativeLayout rlCamWrapper;
    CameraSurfaceView cameraSurfaceView;


    private SurfaceView surfaceView;

    private boolean isRecording = false;



    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Hide the window title.
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.main);

        // this is the important part
        cameraSurfaceView = (CameraSurfaceView) findViewById(R.id.surfaceView2);
    }
    ...
}
public class CameraSurfaceView extends ViewGroup  implements SurfaceHolder.Callback{
    private final String TAG = "Preview";

    private SurfaceView mSurfaceView;
    private SurfaceHolder mHolder;
    private Size mPreviewSize;
    private List<Size> mSupportedPreviewSizes;
    private Camera mCamera;

    public CameraSurfaceView(Context context) {
        super(context);

        mSurfaceView = new SurfaceView(context);
        addView(mSurfaceView);

        mHolder = mSurfaceView.getHolder();
        mHolder.addCallback(this);
        mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

    }

    public CameraSurfaceView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        ...
    }

    public CameraSurfaceView(Context context, AttributeSet attrs) {
        super(context, attrs);
        ...
    }
     ...
}
       cameraSurfaceView = new CameraSurfaceView(this);
      <SurfaceView in your xml with <your.package.CameraSurfaceView