使用 ALIGN_PARENT 以编程方式将 4 个视图添加到 4 个角
Add 4 views to 4 corners programmatically using ALIGN_PARENT
我正在尝试以编程方式将 4 个视图添加到屏幕的 4 个角,但它没有按要求工作。
View[] TchBoxAryVar = new View[4];
int LyoRulAryVar[] = {RelativeLayout.ALIGN_PARENT_TOP,
RelativeLayout.ALIGN_PARENT_TOP |
RelativeLayout.ALIGN_PARENT_RIGHT,
RelativeLayout.ALIGN_PARENT_BOTTOM,
RelativeLayout.ALIGN_PARENT_BOTTOM |
RelativeLayout.ALIGN_PARENT_RIGHT};
int ClrAryVar[] = {Color.RED, Color.GREEN, Color.GRAY, Color.MAGENTA};
for(int IdxVal = 0; IdxVal < TchBoxAryVar.length; IdxVal++)
{
Log.d("TAG", "onCreate: " + IdxVal);
TchBoxAryVar[IdxVal] = new View(this);
RelativeLayout.LayoutParams LyoRulVar = new RelativeLayout.LayoutParams(200, 200);
LyoRulVar.addRule(LyoRulAryVar[IdxVal]);
TchBoxAryVar[IdxVal].setLayoutParams(LyoRulVar);
TchBoxAryVar[IdxVal].setBackgroundColor(ClrAryVar[IdxVal]);
MainViewVav.addView(TchBoxAryVar[IdxVal]);
}
二维数组就可以了。您不能使用“|”以编程方式设置多个对齐方式分隔器。请尝试以下示例:
final int LyoRulAryVar[][] = new int[][]{
{RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.ALIGN_PARENT_LEFT},
{RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.ALIGN_PARENT_RIGHT},
{RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.ALIGN_PARENT_LEFT},
{RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.ALIGN_PARENT_RIGHT}
};
int ClrAryVar[] = {Color.RED, Color.GREEN, Color.GRAY, Color.MAGENTA};
for (int IdxVal = 0; IdxVal < TchBoxAryVar.length; IdxVal++) {
TchBoxAryVar[IdxVal] = new View(this);
RelativeLayout.LayoutParams LyoRulVar = new RelativeLayout.LayoutParams(200, 200);
for (int j = 0; j < LyoRulAryVar[IdxVal].length; j++) {
LyoRulVar.addRule(LyoRulAryVar[IdxVal][j]);
}
TchBoxAryVar[IdxVal].setLayoutParams(LyoRulVar);
TchBoxAryVar[IdxVal].setBackgroundColor(ClrAryVar[IdxVal]);
MainViewVav.addView(TchBoxAryVar[IdxVal]);
}
我正在尝试以编程方式将 4 个视图添加到屏幕的 4 个角,但它没有按要求工作。
View[] TchBoxAryVar = new View[4];
int LyoRulAryVar[] = {RelativeLayout.ALIGN_PARENT_TOP,
RelativeLayout.ALIGN_PARENT_TOP |
RelativeLayout.ALIGN_PARENT_RIGHT,
RelativeLayout.ALIGN_PARENT_BOTTOM,
RelativeLayout.ALIGN_PARENT_BOTTOM |
RelativeLayout.ALIGN_PARENT_RIGHT};
int ClrAryVar[] = {Color.RED, Color.GREEN, Color.GRAY, Color.MAGENTA};
for(int IdxVal = 0; IdxVal < TchBoxAryVar.length; IdxVal++)
{
Log.d("TAG", "onCreate: " + IdxVal);
TchBoxAryVar[IdxVal] = new View(this);
RelativeLayout.LayoutParams LyoRulVar = new RelativeLayout.LayoutParams(200, 200);
LyoRulVar.addRule(LyoRulAryVar[IdxVal]);
TchBoxAryVar[IdxVal].setLayoutParams(LyoRulVar);
TchBoxAryVar[IdxVal].setBackgroundColor(ClrAryVar[IdxVal]);
MainViewVav.addView(TchBoxAryVar[IdxVal]);
}
二维数组就可以了。您不能使用“|”以编程方式设置多个对齐方式分隔器。请尝试以下示例:
final int LyoRulAryVar[][] = new int[][]{
{RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.ALIGN_PARENT_LEFT},
{RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.ALIGN_PARENT_RIGHT},
{RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.ALIGN_PARENT_LEFT},
{RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.ALIGN_PARENT_RIGHT}
};
int ClrAryVar[] = {Color.RED, Color.GREEN, Color.GRAY, Color.MAGENTA};
for (int IdxVal = 0; IdxVal < TchBoxAryVar.length; IdxVal++) {
TchBoxAryVar[IdxVal] = new View(this);
RelativeLayout.LayoutParams LyoRulVar = new RelativeLayout.LayoutParams(200, 200);
for (int j = 0; j < LyoRulAryVar[IdxVal].length; j++) {
LyoRulVar.addRule(LyoRulAryVar[IdxVal][j]);
}
TchBoxAryVar[IdxVal].setLayoutParams(LyoRulVar);
TchBoxAryVar[IdxVal].setBackgroundColor(ClrAryVar[IdxVal]);
MainViewVav.addView(TchBoxAryVar[IdxVal]);
}