如何更改 SurfaceView 的宽度和高度?

How to change SurfaceView width and height?

我在 ConstraintLayout 中有一个 SurfaceView。
我更改了 SurfaceView 的宽度和高度,但只有高度发生了变化。

如何改变SurfaceView的宽度?

这是我的 activity.xml.

    <android.support.constraint.ConstraintLayout
      xmlns:android = "http://schemas.android.com/apk/res/android"
      xmlns:tools = "http://schemas.android.com/tools"
      android:layout_width = "match_parent"
      android:layout_height = "match_parent"
      xmlns:app = "http://schemas.android.com/apk/res-auto"
      tools:context = ".MainActivity"
    >
    <SurfaceView
        android:id="@+id/surface_play"
        android:layout_width = "0dp"
        android:layout_height = "200dp"
        app:layout_constraintTop_toTopOf ="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"        />

    <Button
        android:id="@+id/btn_play"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:text="play"
        app:layout_constraintTop_toBottomOf="@+id/surface_play"
        app:layout_constraintStart_toStartOf="parent"        />

    <Button
        android:id="@+id/btn_stop"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        app:layout_constraintTop_toTopOf="@+id/btn_play"
        app:layout_constraintStart_toEndOf="@+id/btn_play"        
        android:text="stop"        />    
</android.support.constraint.ConstraintLayout>

这是 surfaceChangedMethod。

     @Override
    public void surfaceChanged ( SurfaceHolder holder , int format , int width , 
    int height ) {

    android.view.ViewGroup.LayoutParams lp = surfaceView.getLayoutParams();
    lp.width = 1000; // required width
    lp.height = 1000; // required height
    surfaceView.setLayoutParams(lp);
}

我自己解决。更改 SurfaceView 的属性

android:layout_width = "0dp"

android:layout_width = "wrap_content" 

比它有效。