0

TextViewを拡張するカスタムビューを作成しています。必要なのは、TextViewの左側にある2つのラベルと、右側にあるもう1つのチェッカーです。

したがって、これらのラベルを描画してから、キャンバスを保存して正しく翻訳し、テキストをビットマップの横に描画できるようにします。これが私がそうしている方法です。

canvas.drawBitmap(bitmap1, 0, top, paint);
canvas.drawBitmap(bitmap2, bitmap1_width, top, paint);

canvas.save();
canvas.translate(bitmap1_width + bitmap2_width, 0);

ここではsuper.onDrawを呼び出しますが、2つのビットマップとチェッカーの幅が減算されるように幅を使用するように依頼します。

その後、私は私を呼び出すことができます

canvas.drawBitmap(checker, checkerLeft, top, null);

では、キャンバスを変換した後、super.onDrawのキャンバスに、測定された幅のみを使用するように指示するにはどうすればよいですか?代替案を自由に投げてください。私の要件はこの例よりも少し複雑なので、キャンバスを使用したいと思います。

4

1 に答える 1

0

わかりました。super.onDraw()を呼び出す前に、canvas.scale(sx、sy)を使用してスケール係数を変更しました。

これは私が望む方法でテキストを表示しています。より良い答えがあれば、投稿してください。

canvas.save();
canvas.translate(margin, 0);
canvas.scale(scaleX, 1f);
super.onDraw(canvas);
canvas.restore();
于 2012-05-30T22:47:41.847 に答える