我目前正在以编程方式创建一个带有imageview和文本视图的framelayout。原始布局是相对布局。
RelativeLayout layout = (RelativeLayout) findViewById(R.id.rel);
FrameLayout fr = new FrameLayout(this);
fr.setBackgroundResource(R.drawable.question_bar_icon);
ImageView b1 = new ImageView(this);
TextView b2 = new TextView(this);
b1.setBackgroundResource(R.drawable.mcq);
fr.addView(b1);
fr.addView(b2);
layout.addView(fr);
现在我无法调整图像视图和按钮的大小,也无法将它们定位在中心的文本视图和垂直中心的图像视图中并且左侧定位。 我试过布局参数,但没有工作,任何帮助都将不胜感激!
答案 0 :(得分:3)
尝试使用addView
的重载版本,在每种情况下都会以LayoutParameter
编程添加视图,否则会使用默认布局参数将其插入ViewGroup
。 (P.S。你也可以控制插入的顺序)。
例如,您想要位于框架布局中心的ImageView
:
int width = FrameLayout.LayoutParams.WRAP_CONTENT; //or whatever you want
int height= FrameLayout.LayoutParams.WRAP_CONTENT; //or whatever you want
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(width, height, Gravity.CENTER);
fr.addView(b1,lp);
对其他视图执行相同操作,,最重要的是,使用RelativeLayout.LayoutParams
将框架元素本身插入RelativeLayout
。