本文主要讲述如何动态给UI界面添加布局和控件,在编程的时候很多时候需要动态显示一些内容,在动态添加View的时候,主要使用addView方法。

1. addView方法简介

      在Android 中,可以利用排版View的 addView 函数,将动态产生的View 物件加入到排版View 中。

例子如下:

界面代码:

 


Activity代码:

 

public class helloWorld extends Activity {    public void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      setContentView( R.layout.main );       // 取得LinearLayout 物件      LinearLayout ll = (LinearLayout)findViewById(R.id.viewObj);       // 将TextView 加入到LinearLayout 中      TextView tv = new TextView(this);      tv.setText("Hello World");      ll. addView ( tv );       // 将Button 1 加入到LinearLayout 中      Button b1 = new Button(this);      b1.setText("取消");      ll. addView ( b1 );       // 将Button 2 加入到LinearLayout 中      Button b2 = new Button(this);      b2.setText("确定");      ll. addView ( b2 );       // 从LinearLayout 中移除Button 1      ll. removeView ( b1 );   }}


      上述代码的位置,是垂直顺序排列的因为界面代码Linerlayout的orientation设置的是vertical的,但是为了美观,需要设置添加的View的位置和样式。在添加View的时候分为两类来介绍,一种是布局(例如:Linearlayout等),一种是控件(例如:Button,TextView等等。)

2. 动态添加布局(包括样式和位置)

      下面的例子将介绍如何动态添加布局,基本内容和上面的代码一致,主要注重如何控制添加的布局的位置。在控制布局的位置的时候使用LayoutParam类来实现。

例子:

      界面代码和上面的界面代码类似,就不在重复介绍。

Activity类部分代码:

 

RelativeLayout rl = new RelativeLayout(this);//设置RelativeLayout布局的宽高RelativeLayout.LayoutParams relLayoutParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);this.addView(rl, relLayoutParams);


 

3. 动态添加控件

       动态添加控件和添加布局很相似,下述代码主要注重看控制控件的位置,下面的代码和第二项添加布局的补充,在新添加的布局里面再添加控件。

界面代码同样不在重复。

Activity类部分代码:

 

RelativeLayout rl = new RelativeLayout(this);//设置RelativeLayout布局的宽高RelativeLayout.LayoutParams relLayoutParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);TextView temp = new TextView(this);temp .setId(1);temp.setText(“图片”);rl.addView(temp);TextView tv = new TextView(this);tv.setText(“文字”);tv.setId(2);LayoutParams param1 = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);param1.addRule(RelativeLayout.BELOW, 1);//此控件在id为1的控件的下边rl.addView(tv,param1);Button update = new Button(this);update.setText("Button");LayoutParams param2 = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);param2.addRule(RelativeLayout.RIGHT_OF, 1);//此控件在id为1的控件的右边rl.addView(update,param2);this.addView(rl, relLayoutParams);


注意:控制位置和样式的时候,布局和控件使用的方法是一样的。

4. 位置参数介绍

参见网址:http://blog.sina.com.cn/s/blog_5da93c8f0101azq7.html

5. 参考网址:

(1)http://blog.csdn.net/frdde/article/details/7289047

(2)http://blog.csdn.net/xanxus46/article/details/7742446

(3)http://blog.sina.com.cn/s/blog_5da93c8f0101azq7.html

(4)http://blog.sina.com.cn/s/blog_4ac60f270100myjk.html

 

 

 

更多相关文章

  1. Linux手机打电话代码分析
  2. Android UI框架 Android UI控件类简介 android5大布局详解
  3. Android 动态加载布局文件
  4. 巧用布局文件实现Android中实现事件监听机制
  5. 将服务器端字符读取至android的文本控件,换行符变成了黑方块的原
  6. android 自定义控件学习之三 控件布局常用知识总结
  7. Android软件广告屏蔽方法及代码

随机推荐

  1. Android Studio 从安装到配置使用
  2. Android Studio常用设置
  3. Android事件处理方法总结-Handler消息处
  4. Android中数据存储——SharedPreferences
  5. 选择一款2K-3K的Android机器,犹豫中
  6. 在Android中加载并使用opencv的方法
  7. 鍦ㄧ數鑴戜笂鐢ㄩ紶鏍囧拰閿洏鎺у埗an
  8. Android(安卓)Acrchitecture Components(
  9. [Android]用架构师角度看插件化--章节列
  10. Android NDK开发篇(一):新版NDK环境搭建(