2

我目前正在以编程方式创建带有图像视图和文本视图的框架布局。按原始布局是相对布局。

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);

现在我无法调整图像视图和按钮的大小,也无法将它们定位在中心的文本视图和垂直中心的图像视图中,并且位于左侧。我尝试了布局参数,但没有工作,任何帮助将不胜感激!

4

1 回答 1

3

addView在您以编程方式添加视图的每种情况下,尝试使用它的重载版本LayoutParameter,否则它会被插入到ViewGroup具有默认布局参数的视图中。(PS你也可以控制插入的顺序)。

例如,对于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.

于 2013-03-13T10:16:26.127 回答