我目前有一个以编程方式创建的框架布局,其中包含 ImageView 和 TextView 。按原始布局是相对布局。
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);
现在我无法调整 ImageView 和按钮的大小,也无法定位它们,在中心的 TextView 和垂直中心和左侧定位的 ImageView 中。 我尝试了布局参数,但不起作用,任何帮助将不胜感激!
最佳答案
尝试使用 addView
的重载版本,它在您以编程方式添加 View 的每种情况下也采用 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);
对另一个 View 执行相同的操作,最重要的是,使用 RelativeLayout.LayoutParams
将框架元素本身插入 RelativeLayout
.
关于android - 设置framelayout边距及其子元素的宽度、高度和位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15381841/