Java Android:当您更改设置为以编程方式包装内容的frameLayout的维度时会发生什么?

Java Android:当您更改设置为以编程方式包装内容的frameLayout的维度时会发生什么?,java,android,android-xml,Java,Android,Android Xml,我的应用程序中有一个FrameLayout,在xml文件中,它的宽度和高度设置为wrap\u content。然后我想以编程方式更改其维度,如下所示: FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview); ViewGroup.LayoutParams previewParam = preview.getLayoutParams() ; previewParam.height =(int) (height *

我的应用程序中有一个FrameLayout,在xml文件中,它的
宽度和
高度设置为
wrap\u content
。然后我想以编程方式更改其维度,如下所示:

FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
ViewGroup.LayoutParams previewParam = preview.getLayoutParams() ;
previewParam.height =(int) (height * 0.86);
previewParam.width = (int)(previewParam.height/ratio) ;
preview.setLayoutParams(previewParam) ;

当我执行此操作时,当我启动此活动时,程序将退出,
wrap\u内容是否有问题?

我认为这是因为
previewParam
在该点为空。试着这样做:

FrameLayout preview = (FrameLayout) findViewById(R.id.abs__action_bar);
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams((height/ratio),
         (int) (height * 0.86));
preview.setLayoutParams(params);
preview.requestLayout();