如何在Android中以编程方式将视图设置为彼此上下

时间:2013-09-14 04:47:13

标签: android android-layout

我是iPhone开发人员,并设置UIView为彼此的上下我使用此代码:

UIView * view1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 160, 160)];
view1.backgroundColor = [UIColor redColor];
[self.view addSubview:view1];

UIView * view2 = [[UIView alloc] initWithFrame:CGRectMake(160, 0, 160, 160)];
view2.backgroundColor = [UIColor greenColor];
[self.view addSubview:view2];

UIView * view3 = [[UIView alloc] initWithFrame:CGRectMake(0, 160, 160, 160)];
view2.backgroundColor = [UIColor pinkColor];
[self.view addSubview:view2];

UIView * view4 = [[UIView alloc] initWithFrame:CGRectMake(160, 160, 160, 160)];
view2.backgroundColor = [UIColor blueColor];
[self.view addSubview:view2];

但我想知道如何在Android中以编程方式显示相同的视图。我的观点框架与其动态不同。

实际上我试图了解动态布局在android中是如何工作的。在iPhone中我们有X,Y,Width和Height,我们可以为任何动态视图定义。但我已经做了一些研究,并且我了解到在android中它有相对布局,所以我们无法在ios中设置视图的X和Y位置。

我的数据库中包含X,Y,Width和Height列表,根据数据库我在iPhone项目中设置了Views的大小。

现在我想在Android中做同样的事情,但是我的Android开发人员说,相对布局的bcoz不可能,所以我想要一个解决方案来创建像Android这样的iPhone。

对于上面的示例,我的DB包含X,Y,Width和Height

X     Y   Width   Height
0     0   160     160
160   0   160     160
0    160  160     160
160  160  160     160

这就是它的样子:

enter image description here

1 个答案:

答案 0 :(得分:2)

你可以在LinearLayout中以这种方式设置

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
             LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT,Gravity.CENTER);

view.addView(button,params);

并在相对布局

RelativeLayout.LayoutParams layoutParams = 
    (RelativeLayout.LayoutParams)positiveButton.getLayoutParams();
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, 0);
view.setLayoutParams(layoutParams);