SurfaceView运行方法代码

时间:2012-11-04 22:32:58

标签: java android algorithm

我正在尝试绘制一个10x10的交替颜色网格。在我的run()方法中我有这个

    int xinc = this.getWidth() / 10;
int yinc = this.getHeight() / 10;
Log.d("xinc - ", String.valueOf(xinc));
Log.d("yinc - ", String.valueOf(yinc));
int x1 = 0;
int y1 = 0;
int x2 = xinc;
int y2 = yinc;
boolean red = true;

for (int xx = 0; xx < 10; xx++) {

    for (int yy = 0; yy < 10; yy++) {

        if (red) {
            myPaint.setColor(Color.RED);
            red = false;
        } else {
            myPaint.setColor(Color.GREEN);
            red = true;
        }
        c.drawRect(x1, y1, x2, y2, myPaint);
        y1 += yinc;
        y2 += yinc;

    }
    x1 += xinc;
    x2 += xinc;
}

holder.unlockCanvasAndPost(c);

我得到了第一排垂直替代盒子,但这就是全部。屏幕的其余部分保持白色。它好像x1和x2变量没有递增,所以外循环没有影响。但是我已经确认他们是通过对这些变量使用logcat,它们会按预期增加。任何人都可以看到这里有什么问题吗?

1 个答案:

答案 0 :(得分:3)

你忘了重置y1和y2! 我觉得很简单 y1 = 0; y2 = yinc;

x1 += xinc; x2 += xinc;

应该这样做。