下面的代码工作正常:
for (int i = 0; i < 1; i++) {
Log.e("router size", String.valueOf(routers.size()));
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.GREEN);
canvas.drawCircle(100, 100, 50, paint);
}
但是,如果我将循环更改为以下内容:
for (int i = 0; i < routers.size(); i++) {
Log.e("router size", String.valueOf(routers.size()));
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.GREEN);
canvas.drawCircle(100, 100, 50, paint);
}
其中routers.size()
等于1
,日志消息仍然被写入,因此它进入循环,但圆没有'不要被吸引。
谁能解释一下这是怎么回事?
如果需要,我可以发布我的 onDraw()
函数以及我的循环所在的函数。
最佳答案
参见Canvas.drawCircle
文档。
对于参数,您传递相同的值,[cx
- 100
、cy
- 100
和radius
- 50
] 当您循环遍历时,因此圆在同一坐标处会被过度绘制。
尝试使用不同的 cx
、cy
值,例如
canvas.drawCircle(100 * i, 100 * i, 50, paint);
将在不同的位置绘制每个圆圈。 希望对您有帮助
关于java - canvas.drawCircle 不显示在 for 循环中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35117191/