1

交互の色の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を使用することで確認しましたが、期待どおりに増加します。誰かがここで何が悪いのかわかりますか?

4

1 に答える 1

3

y1 と y2 をリセットするのを忘れた! シンプルに思います y1 = 0; y2 = yinc;

x1 += xinc; x2 += xinc;

するべきです。

于 2012-11-04T22:42:05.333 に答える