android - 设置framelayout边距及其子元素的宽度、高度和位置

标签 android android-relativelayout android-framelayout

我目前有一个以编程方式创建的框架布局,其中包含 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/

相关文章:

Android:将额外的 Activity 从一个 Activity 传递到另一个 Activity

Androidrelativelayout自定义对话框问题

Android 相对布局 : how to put a view below another view when both aren't at the same container

android - 在framelayout中添加两个webview

android - backstack 中的配置更改 fragment 现在共享 FrameLayout 后?

java - Android Activity ASyncTask 和 onCancelled

android - 在 Exo 播放器中播放 Youtube DASH 网址

Android - 开发预览中未显示 Actionbar

android - 对齐相对布局内的复选框

android - 以编程方式在 framelayout 中的 imageview 上覆盖文本 - Android