现在的位置: 首页 > 综合 > 正文

Android 动态生成控件

2013年09月13日 ⁄ 综合 ⁄ 共 2452字 ⁄ 字号 评论关闭
动态生成界面的方法很简单
首先要却这个界面的布局,是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);
}

抱歉!评论已关闭.