Вам нужно немного места по краям. Таким образом, у вас может быть переменная для отступа, которая должна быть в два раза меньше диаметра ваших точек плюс столько пикселей белого, что вы хотите вокруг них. Вы, вероятно, рассчитали бы размер, используя постоянную единицу DIP и плотность экрана, так же, как вы, вероятно, делали для своей краски, чтобы получить диаметр точки.
Затем вы можете использовать отступ в ваших вычислениях. Например, если у вас есть пять столбцов, чтобы получить расстояние между точками, вы хотите разделить ширину на четыре после вычитания отступов с обеих сторон.
val padding = /* ... */
val columns = 5
val rows = 5
val hSpacing = (width - (2 * padding)) / (columns - 1)
val vSpacing = (height - (2 * padding)) / (rows - 1)
for (i in 0..columns)
for (j in 0..rows)
canvas.drawPoint(padding + i * hSpacing, padding + j * vSpacing, paint)