@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Java代码中动态的生成View
//首先我们在onCreate方法中创建一个Button实例:
Button button = new Button(this);
//创建了Button实例下面我们就要指定它在哪个界面中显示:
//首先第一步找到我们要显示的界面:
//首先把setContentView()删掉(后文会讲)。
//LayoutInflate使用来找到一个布局文件:需要先写一个XML布局
ViewGroup inflate = (ViewGroup) LayoutInflater.from(this).inflate(R.layout.alayout, null);
//下一步就是要把我们的Button添加到RelativLayout中了
//使用ViewGroup的addView方法:
inflate.addView(button);
button.setBackground(new ColorDrawable(Color.RED));
button.setText("HelloWord");
button.setId(200);
//设置的大小
// RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(100, 100);
//用Math以及Wrap设置大小
RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
// 为什么没有效果呢,因为定义了LayoutParam但是没有指定哪一个View因此还需要添加一句
button.setLayoutParams(params);
// // 、设置位置信息
// 使Button居中显示,
// addRules()设置位置:
params.addRule(RelativeLayout.CENTER_IN_PARENT);
// addRules
// addRule(int verb) verb我们很好理解,就是各种规定位置的参数
// addRule(int verb, int anchor) ancher为ID
Button button1 = new Button(this);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.addRule(RelativeLayout.ABOVE,200);
button1.setLayoutParams(layoutParams);
button1.setBackground(new ColorDrawable(Color.BLUE));
button1.setText("袁静慈");
inflate.addView(button1);
setContentView(inflate);
}
}