android - 用于填充视图的 Android 网格
问题描述
我正在尝试使用 Kotlin 在 Android Studio 中制作游戏,目前我使用两个用于绘制点的 for 循环(1 个用于 cols,1 个用于行)绘制了一个网格。我希望这些点填充视图,而不是网格周围的空白区域。有任何想法吗?
val columns = 5
val rows = 5
var xPos: Float = width / (columns + 1)
var yPos: Float = height / (rows + 1)
for (col in 1..columns) {
for (row in 1..rows) {
canvas.drawPoint(col*xPos, row*yPos, paint)
}
}
解决方案
你需要在边缘周围留一点空间。所以你可以有一个填充变量,它应该是你的点直径的一半加上你想要的白色像素。您可能会使用恒定的 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)
推荐阅读
- reactjs - 在 React 中执行 onChange 函数时状态不更新
- angular - 导入错误,找不到文件:highcharts/histogram-bellcurve
- c# - 我正在使用 asp.net formview,当我在本地服务器上运行的 IIS 中托管 asp.net 应用程序时,日期格式会发生变化
- sql - SQL:选择第一列的第一次出现,第二个不同的值
- python - 保持对象的所有细节以最平滑和最有效的方式去除形状
- java - 跨项目自动装配时钟导致“未找到此类 Bean”异常
- android - Facebook 登录/注销按钮在 Android 中无法正常工作
- html - 更改静态模板中的值
- matlab - MATLAB - 读取多个 dat 文件进行循环
- stm32 - STM32 UART 接收无法正常工作