Android 代码简单布局

很多时候我们在写Android布局都是在xml里写,但是有时候在xml里写满足不了我们的需要,这时候我们就需要在代码中来写我们的布局了。那么,在代码中我们怎么来写呢?

今天碰巧需要用到,所以就简单写一写。(有不足之处请指正,谢谢)

首先,我们熟悉的,新建Activity的时候开始我们都会有如下写法:

protected void onCreate(Bundle savedInstanceState) {    
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

这里的setContentView(R.layout.main)就是我们需要的布局文件。那么,如果我们把这里的R.layout.main换成自己的布局不就OK了吗?

好,我们开始。

先从我们熟悉的LinearLayout开始

我用自己的LinearLayout替换R.layout.main,一般我们在xml里都是这么写:



所以,在代码中,我们需要设置orientation和宽高你这里需要用到一个LayoutParams,它是用来设置我们布局的位置大小。所以:

//我们先new一个LinearLayout
LinearLayout linearlayout = new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.VERTICAL);
//布局位置样式
LinearLayout.LayoutParams linParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
linearlayout .setLayoutParams(linParams);

这样我们就把最外层的布局写出来了(线性布局,相对布局等大同小异),现在我们往里边添加控件:

//添加一个TextView
TextView textView1 = new TextView(this);
//设置样式和xml差不多,不多讲
textView1.setText("Test TextView1")
textView1.setTextSize(18);
//同样,也需要设置TextView的位置大小
LinearLayout.LayoutParams text1Params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
//将textVIew1添加进LinearLayout布局
linearlayout .addView(textView1,text1Params );
//OK我们已经将我们的布局添加进了LinearLayout,最后,非常最要的一步千万别忘
setContentView(linearlayout );

这样我们就算完成了,还算简单。LinearLayout就说这么多吧。下面我们说RelativeLayout,相对来说比LinearLayout复杂一点点。

RelativeLayout

废话不多说,直接来:

RelativeLayout relativeLayout = new RelativeLayout(this);
relativeLayout.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT));

//写两个BUTTON
Button button = new Button(this);
button.setText("button");
button.setTextSize(25);
//setId这一很重要,因为在RelativeLayout我们都是根据ID来确定各自的位置的
button.setId(1);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
relativeLayout.addView(button,layoutParams);

Button button2 = new Button(this);
button2.setTextSize(25);
button2.setText("button2");
button2.setId(2);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
//将第二个Button放在第一个Button右边(照葫芦画瓢,上下左右随便放)
layoutParams.addRule(RelativeLayout.RIGHT_OF,1);
relativeLayout.addView(button2,layoutParams);

setContentView(relativeLayout);
Android 代码简单布局_第1张图片

截图有点渣,将就看,这样就完成了。简单吧。好了,代码布局就说到这里,其他的布局相对这两个来说用的很少,有兴趣的去研究研究吧。
纯手打,请勿粘贴复制,出错不负责




你可能感兴趣的:(Android 代码简单布局)