canvas.drawCircle没有显示在for循环中

时间:2016-01-31 17:52:50

标签: java android android-canvas

以下代码可以正常使用:

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()函数和我的循环函数。

1 个答案:

答案 0 :(得分:1)

请参阅Canvas.drawCircle文档。

对于参数,您传递相同的值,[cx - 100cy - 100radius - 50]当你循环时,所以圈子在同一个坐标上越过另一个。

尝试使用不同的cxcy值,例如

canvas.drawCircle(100 * i, 100 * i, 50, paint);

将在不同的地方绘制每个圆圈。 希望它有所帮助