在很多时候xml里面的布局并不能满足我们的需求。这时候就需要用代码进行动态布局,前些天在对RelativeLayout 进行动态布局时遇到了些问题,现在解决了,分享下。

我现在在RelativeLayout 里面 动态创建4个View,是两行两列的效果。

1.添加第一个View。

RelativeLayout layout = (RelativeLayout)findViewById(R.layout.rl);

ImageView item1 = new ImageView(this);

item1.setImageResource(R.drawable.x);//设置图片

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(

LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);

lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);//与父容器的左侧对齐

lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);//与父容器的上侧对齐

lp.leftMargin=30;

lp.topMargin=30;

item1.setId(1);//设置这个View 的id 

item1.setLayoutParams(lp);//设置布局参数

layout.addView(item1);//RelativeLayout添加子View

2.添加第二个View。

ImageView item2 = new ImageView(this);

item2.setImageResource(R.drawable.x);//设置图片

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(

LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);

lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);

lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);

lp.rightMargin=30;

lp.topMargin=30;

item2.setId(2);

item2.setLayoutParams(lp);

 

layout.addView(item2);

 3.添加第三个View。

View childView1 = skinsLayout.getChildAt(0);刚加进去RelativeLayout的第一个子View

View item3 =createSkinItem(friendContext);

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(

LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);

lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);

lp.addRule(RelativeLayout.BELOW,  childView1.getId());//设置item3在     //chlidView1的下面

lp.leftMargin=30;

lp.topMargin=30;

item3.setId(3);

item3.setLayoutParams(lp);

 

layout.addView(item3);

 3.添加第四个View。

View childView2 = skinsLayout.getChildAt(1);//获取容器的第二个子view 

ImageView item4 = new ImageView(this);

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(

LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);

lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);

lp.addRule(RelativeLayout.BELOW,  childView2.getId());

lp.rightMargin=30;

lp.topMargin=30;

item.setId(4);

item.setLayoutParams(lp);

 

layout.addView(item);

更多相关文章

  1. Android(安卓)对Layout_weight属性完全解析以及使用ListView来实
  2. Android(安卓)手动编译jni动态库
  3. Android_UI_实现TabHost的两种方法
  4. adapter用法
  5. Android界面五种常用布局方式
  6. Android四种布局详解
  7. Android(安卓)原生控件ViewFlipper实现淘宝头条垂直滚动广告条
  8. (原创)Android入门教程(三十六)------实现手机联系人的全选
  9. Android(安卓)RecyclerView之代替ListView与GridView

随机推荐

  1. Android(安卓)中文 API (100) —— Scrol
  2. Android受手机制造商青睐 业内担心埋下隐
  3. 【译】Android中的安全数据— Android中
  4. android 与JS之间的交互
  5. Android中的Handler在多线程中的使用
  6. 如何搭建android的开发环境 虚拟机和ubun
  7. 【移动开发】Android中WIFI开发总结(一)
  8. 高焕堂:iPhone软件是芝麻,巧用Android才能
  9. Android持久化之文件的读取与写入
  10. 使用Content Provider