如何动态地将视图添加到LinearLayout?

时间:2012-02-13 22:47:35

标签: java android android-layout android-imageview

有没有办法在Android中动态添加和定位图像到线性布局?在PHP我可以回应一个图像标签并使用CSS来定位它,不知道如何在Android中解决这个问题,因为xml似乎是非常严格的预定义。

1 个答案:

答案 0 :(得分:1)

您可以通过调用ViewGroup.addView(View)方法将视图添加到任何ViewGroup。 但是,这是一种添加视图的模糊方式。首选的是您首先为给定的布局创建LayoutParams(考虑到视图)这将允许您更密切地控制视图及其与父视图的关系。

以下是将所有内容组合在一起的示例:

class MyActivity extends Activity {
    @Override public void onCreate(Bundle icicle) {
        super.onCreate(icicle)

        LinearLayout ll = new LinearLayout(this);
        ll.setOrientation(LinearLayout.VERTICAL);
        // Create 5 view to take up a small amount of space.

        View tmp = null;

        for (int i = 0; i < 5; i++) {
            tmp = new View(this);
            ll.addView(tmpnew LinearLayout.LayoutParams(
                50, // Width
                50);    // Height
            // Either or both the width and height may be ViewGroup.
            // (WRAP_CONTENT || FILL_PARENT || MATCH_PARENT)
        }

        setContentView(ll);
    }
}

这是您将视图动态添加到LinearLayout的方法。但是,由于LinearLayout的结构和设计,确实没有太多的定位方式。将LinearLayout视为一个方向上充满视图的数组,您唯一能做的就是更改它们在数组中的位置。如果您想要对视图进行精细控制,我建议使用RelativeLayout.