LinearLayout.LayoutParams linearParams =(LinearLayout.LayoutParams) textView.getLayoutParams(); //取控件textView当前的布局参数 linearParams.height = 20;// 控件的高强制设成20
linearParams.width = 30;// 控件的宽强制设成30
textView.setLayoutParams(linearParams); //使设置好的布局参数应用到控件
RelativeLayout.LayoutParams lp = (LayoutParams) logo.getLayoutParams(); // 如果没有水平居中,说明是软键盘收起,否则是开始时的初始化或者因为此处if条件里的语句修改控件导致的再次布局,忽略掉,否则无限循环 if (lp.getRules()[RelativeLayout.CENTER_HORIZONTAL] == 0) { // 居中Logo lp.addRule(RelativeLayout.CENTER_HORIZONTAL); lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT, 0); // 还原Logo为原来大小 int height = logo.getHeight(); int width = logo.getWidth(); lp.width = width * 2; lp.height = height * 2; logo.setLayoutParams(lp); // Logo下的文字 RelativeLayout.LayoutParams labelParams = (LayoutParams) label.getLayoutParams(); labelParams.addRule(RelativeLayout.CENTER_HORIZONTAL); // 设置水平居中 labelParams.addRule(RelativeLayout.BELOW, R.id.logo); // 设置显示到Logo下面 labelParams.addRule(RelativeLayout.RIGHT_OF, 0); // 取消显示到Logo右面 labelParams.addRule(RelativeLayout.CENTER_VERTICAL, 0); // 取消垂直居中 label.setLayoutParams(labelParams);