1
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ファイルで重力/マージンを使用しますか?

4

2 に答える 2

2

それがあなたのために働くかどうか確認してください。

    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);
    }

コードはテストされていません。アイデアは、グリッドに水平および垂直のオフセットを提供することです。

于 2013-02-28T16:57:02.930 に答える
0

gravity = "center"PARENTビューのXMLファイルで使用します。その場合、ビューのすべての子が中央に配置されます。

于 2013-02-28T16:27:42.877 に答える