安卓布局-基础

1. FrameLayout 最简单的布局

是类似一个九宫格的布局, 子元素用 android:layout_gravity 属性来确定位置。这个很简单。可以在开发环境中拖动,看看效果。

2. LinearLayout 线性布局 简单来说就是子元素按照一条线来排序

  LinearLayout元素 orientation属性值  vertical(竖着排)  horizontal(横着排)

     子元素中可以使用 android:layout_weight 属性来设置比重 相当于在线性布局中,一条线子元素占几份

// 使用代码来控制线性布局
    private LinearLayout root = null;
    private Button btnClickMe = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        root = new LinearLayout(this);
        root.setOrientation(LinearLayout.VERTICAL);   // 这里设置线性布局的方向
        setContentView(root);

        for(int i=0; i<5; i++) {
            btnClickMe = new Button(this);
            btnClickMe.setText("Click me");
            
            // 这个线性布局参数 就是相当于 是放在子元素里面的参数,跟线性布局元素无关
            LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT 
            );
            lp.weight = 1;   // 设置权重

            root.addView(btnClickMe, lp);
        }

        System.out.println("onCreate");
    }

3. 相对布局

  可以相对于父元素来设置外边距, 也可以相对其他的元素来设置外边距。 这里面有很多细节,可以通过编辑器里面的图形拖拉来发现。

     

// 使用代码来控制相对布局
    private RelativeLayout root = null;
    private TextView tv = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        root = new RelativeLayout(this);
        setContentView(root);

        tv = new TextView(this);
        tv.setText("橙汁儿网");

        RelativeLayout.LayoutParams pl = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT);
        pl.leftMargin = 500;   // 左边距
        pl.topMargin = 300;   // 右边距

        root.addView(tv, pl);

        System.out.println("onCreate");
    }
原文地址:https://www.cnblogs.com/shaoshao/p/5873692.html