surfaceView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT));
用这种方法来全屏,或者任意缩放,只要改那两个参数就可以了。

解决方案 »

  1.   

    我的surfaceview原来是在一个特定的布局里的,能直接用这种方法吗?
      

  2.   

    我的surfaceview原来是在一个特定的布局里的,能直接用这种方法吗?
    把LinearLayout改成你的view container:RelativeLayout等等
      

  3.   

    我的surfaceview原来是在一个特定的布局里的,能直接用这种方法吗?
    把LinearLayout改成你的view container:RelativeLayout等等
    这个办法可以让surfaceview在父布局中动态改变大小,但是,我现在是想全屏显示。原来的surfaceview的父布局是个gridview中的一个item,动态改变surfaceview的大小后,其最大尺寸也不会超出这个item的大小。所以才有我上面那种做法,但是就是会绿屏。不知道有没有其他办法让它离开原来布局,在新的布局中全屏?
      

  4.   

    这办法不行。因为我removeview之后,通过调试发现原来surfaceview中的一些变量会改变,例如mWindow会变为null,我把它postInvalidate后,这些改变的变量不会变回来。