我已经创建了一个 8x8 网格,但如何将其居中?


RelativeLayout container = (RelativeLayout) findViewById(R.id.sc);

我已经添加了我的画布类到这个容器,但我的网格是在左上角,即有一个大的空间低于网格,我想知道如何中心网格。这是我绘制网格的代码。

float testWidth = (getWidth() - 16f) / 9f;
float testHeight = (getHeight() - 16f) / 9f;
for (int i = 0; i < 9; i++) {
    canvas.drawLine(testWidth* i, 0 , testWidth * i, testWidth* 8, dark);
    canvas.drawLine(0,  testWidth* i, testWidth* 8, testWidth* i, dark);
}

我在xml文件中使用重力/边距吗?

检查它是否适合你。

    float testWidth = (getWidth() - 16f) / 9f;
    float testHeight = (getHeight() - 16f) / 9f;
    float size = Math.min(testWidth, testHeight);
    float offsetW = (getWidth() - size*8) / 2;
    float offsetH = (getHeight() - size*8)  /2;
    for (int i = 0; i < 9; i++) {
        canvas.drawLine(offsetW + size*i, 
                        offsetH, 
                        offsetW + size*i, 
                        offsetH + size*8, 
                        dark);
        canvas.drawLine(offsetW,  
                        offsetH + size* i, 
                        offsetW + size* 8, 
                        offsetH + size* i, 
                        dark);
    }

代码没有被测试。这个想法是为网格提供水平和垂直偏移。

在PARENT视图的XML文件中使用gravity = "center"。在这种情况下,视图的所有子元素都将居中

最新更新