java - canvas.drawCircle 不显示在 for 循环中

标签 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() 函数以及我的循环所在的函数。

最佳答案

参见Canvas.drawCircle文档。

对于参数,您传递相同的值,[cx - 100cy - 100radius - 50] 当您循环遍历时,因此圆在同一坐标处会被过度绘制。

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

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

将在不同的位置绘制每个圆圈。 希望对您有帮助

关于java - canvas.drawCircle 不显示在 for 循环中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35117191/

相关文章:

java - setLayoutParams 第二次不起作用

java - 在 Servlet 规范 3.0 下传递 servlet 配置参数

java - 在 Java 中使用 F3 或 Ctrl+单击时,Cucumber 功能文件场景步骤不会将我带到相应的步骤定义

java - 带有 JavaScript 界面的 Webview

android - 为什么在某些 android 2.2 手机上绘制位图非常慢?

android - 关于android中的lineargradient

java - 在 TextView 中的两个可绘制对象之间绘制线条

java - 在 JAVA 中如何确定 HTML 文档的格式是否正确?

java - 无法使用 Android 中的 xstream 库序列化包含 ArrayList 的 java 对象

android - 从 fragment 调用 startActivityForResult 时出错