【问题标题】:Android For Loop Not stoppingAndroid For循环不停止
【发布时间】:2011-03-12 12:10:30
【问题描述】:

我在 android 上玩 2d 图形。我正在使用 for 循环为 x 和 y 使用随机生成器。奇怪的是循环永远不会停止:

 for (int i = 0; i < 5; i++){
            System.out.println(i);
            invalidate();
            int randomX = randomGenerator.nextInt(1000);
            int randomY = randomGenerator.nextInt(1000);
            canvas.drawPoint(randomX, randomY, paint);
            float radius = 20;
            canvas.drawCircle(randomX, randomY, radius, paint);
        }

我查看显示 i = 0,1,2,3,4 的 logcat。我要瞎了吗???我 =

【问题讨论】:

  • 打印4后显示什么值?
  • logcat 是多次显示 0 - 4,还是只显示一次?还是logcat显示我超过4?是否有外部循环或其他触发您的活动?抱歉,我不确定这里是否有足够的信息来真正提供帮助。你的 for 循环看起来很好(无论如何对我来说)。
  • 你的意思是它不会停止?如果您的 logcat 只显示 i=0,1,2,3,4 而仅此而已,则它已停止。
  • System.out.println 不应在 logcat 中打印任何内容。使用Log.iSystem.err.println
  • 我刚刚意识到是 invalidate() 搞砸了循环。

标签: android loops for-loop invalidation


【解决方案1】:

如果您的for 循环位于视图的onDraw() 方法内,则调用invalidate() 将强制视图重新绘制自身,再次调用onDraw(),从而形成无限循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多