以下代码可以正常使用:
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()
函数和我的循环函数。
答案 0 :(得分:1)
请参阅Canvas.drawCircle
文档。
对于参数,您传递相同的值,[cx
- 100
,cy
- 100
和radius
- 50
]当你循环时,所以圈子在同一个坐标上越过另一个。
尝试使用不同的cx
,cy
值,例如
canvas.drawCircle(100 * i, 100 * i, 50, paint);
将在不同的地方绘制每个圆圈。 希望它有所帮助