使用 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]);
    }