1

これらのパラメータを使用してdrawTextを作成するカスタムビューがあります。

int stopY = 500;

// ...

Log.info("Drawing line " + line + " at " + String.valueOf(stopY));
canvas.drawText(line, 40, stopY, Paint);

私はテキストの配列を持っていて、私は描いています

 for (int i = startLineNumber; i < (startLineNumber + linesVisible); i++, screenDisplayLine++)
        {
            if (i >= totalLines)
            {
                break;
            }
            int startY = (int) (i*lineSpacing + (screenDisplayLine * lineSpacing));
            int stopY = startY + lineSpacing;
       canvas.drawText(line, 40, stopY, Paint);//stop y increments by 20 every time i use 
    }

まっすぐに動作しますが、startnumberが50である必要がある場合

つまり

 stopy = stopY+(linenumber*20)//(stopY + (50 * 20))

しかし、この場合は失敗します

ヘルプ

LogCatを介してログで正しい値を確認できますが、テキストが描画されません。誰かが私を助けることができますか?

4

3 に答える 3

2

画面サイズを超えて、Yの値を少なくして描画すると思います。

また

塗装機能に問題がある可能性があります

canvas.drawText(String.valueOf(angle_Top), 15, 25, new Paint());
于 2012-07-17T11:58:16.730 に答える
1

両方の回答に感謝します。それで私は答えを見つけました

int stopY = 500;

scrollTo(0,stopY);
canvas.drawText(line, 0, stopY, Paint);

これは正常に機能します。あなたが言ったように、それは私が使用した画面サイズ外になります

scrollTo(0,stopY);

画面内のそのポイントまでスクロールするように、そして私が使用したときに

canvas.drawText(line, 0, stopY, Paint);

そこに問題なく描かれています。

于 2012-07-18T05:53:44.097 に答える
1
canvas.drawText(String.valueOf(stopY), 40, stopY, Paint);
                ^^^^^^^^^^^^^^^^^^^^^

ペイントの色を設定しましたか?例:

mPaint.setColor(Color.RED);

また

あなたが使用しているstopY=500;// は画面の外にある可能性があります

出力を試してstopY=40;確認する

于 2012-07-17T11:53:36.347 に答える