1

我的应用程序中有一个 FrameLayout,在 xml 文件中它的widthheight设置为wrap_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_content存在?

4

1 回答 1

2

我相信它是因为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();
于 2013-02-25T13:35:34.720 回答