これは、画面の中央に7 x 7の正方形のグリッドとして表示したいのですが、私の現在のコードで見ることができるように、水平なものはそうではありません。私は問題はキャンバスが正方形ではないということだと思いたいアンドロイドゲーム用の正方形のグリッドを描くのに問題がある
public class GameGrid extends View {
Paint black = new Paint();
public GameGrid(Context context) {
super(context);
black.setColor(Color.BLACK);
black.setStrokeWidth(8);
}
@Override
public void onDraw(Canvas canvas) {
float startX;
float stopX;
float startY;
float stopY;
int width = canvas.getWidth();
int height = canvas.getHeight();
int gridSize = 7;
int gridSpacing = width/gridSize;
//Vertical Grid-lines
for (int i = 0; i < gridSize; i++) {
startX = width/2 - height/2;
stopX = width/2 + height/2;
startY = i*gridSpacing;
stopY = i*gridSpacing;
canvas.drawLine(startX, startY, stopX, stopY, black);
}
//Horizontal Grid-lines
for (int i = 0; i < gridSize; i++) {
startX = i*gridSpacing;
stopX = i*gridSpacing;
startY = height/2 - width/2;
stopY = height/2 + width/2;
canvas.drawLine(startX, startY, stopX, stopY, black);
}
}
Picture of what grid currently looks like
あなたの答えはありがとう、私は私のプロジェクトにあなたのコードを実装しようとしましたが、現在は、垂直線の下の正しい位置に水平線を揃えているように見えますが、画面の端から左に描画されているか、正しく表示されているのにわずか数ピクセルしか表示されていません。 – JCH1530
申し訳ありませんが、私は今修正しましたが、 'stopX'では' boardSize'の代わりに 'gridSize'を使用していました。今すぐ動作するはずです。 – leobelizquierdo
ありがとうございます、ただ今は、グリッドを閉じるために底に沿って1本の余分な水平線が必要ですが、確かに私はそれをうまく機能させることができます – JCH1530