Chinaunix首页 | 论坛 | 博客
  • 博客访问: 283655
  • 博文数量: 48
  • 博客积分: 2931
  • 博客等级: 少校
  • 技术积分: 720
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-19 22:12
文章分类

全部博文(48)

文章存档

2012年(1)

2011年(6)

2010年(33)

2009年(5)

2008年(3)

我的朋友

分类:

2009-07-06 13:17:18

动态生成界面的方法很简单
首先要却这个界面的布局,是AbsoluteLayout,RelativeLayout还是其他,然后就可以再里面添加控件了:
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //确定界面的布局
        AbsoluteLayout abslayout=new AbsoluteLayout (this);
        setContentView(abslayout);
        //创建一个button按钮
        Button  btn1 = new Button(this);
        btn1.setText("this is a button");
        btn1.setId(1);
        //确定这个控件的大小和位置
       AbsoluteLayout.LayoutParams lp1 =
                                 new AbsoluteLayout.LayoutParams(
                                      ViewGroup.LayoutParams.WRAP_CONTENT,
                                      ViewGroup.LayoutParams.WRAP_CONTENT,
                                      0,100);
      abslayout.addView(btn1, lp1 );

}
一个界面可以布置一个布局,可以多个布局一起设计:
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        //设置界面的布局
        RelativeLayout relativeLayout = new RelativeLayout(this);
        setContentView(relativeLayout);
        
        //添加一个AbsoluteLayout子布局,并给这个布局添加一个button
        AbsoluteLayout abslayout=new AbsoluteLayout (this);
        abslayout.setId(11);
        Button  btn1 = new Button(this);
        btn1.setText("this is a abslayout button");
        btn1.setId(1);
        AbsoluteLayout.LayoutParams lp0 = new AbsoluteLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
                                                                          ViewGroup.LayoutParams.WRAP_CONTENT,100,0);
        abslayout.addView(btn1, lp0 );
        //将这个子布局添加到主布局中
        RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        lp1.addRule(RelativeLayout.ALIGN_PARENT_TOP);
        lp1.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
        relativeLayout.addView(abslayout ,lp1);
        
        //再添加一个子布局
        RelativeLayout relativeLayout1 = new RelativeLayout(this);
        Button  btn2 = new Button(this);
        btn2.setText("this is a relativeLayout1 button");
        btn2.setId(2);
        RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        lp2.addRule(RelativeLayout.ALIGN_PARENT_TOP);
        lp2.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
        relativeLayout1.addView(btn2 ,lp2);
        
        //将这个布局添加到主布局中
        RelativeLayout.LayoutParams lp11 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        lp11.addRule(RelativeLayout.BELOW ,11);
        relativeLayout.addView(relativeLayout1 ,lp11);
}
阅读(1824) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~