我的应用程序和xml文件中有一个FrameLayout,其width
和height
设置为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
是否存在问题?
答案 0 :(得分: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();