0

上記のクラスには、次のメソッドがあります。

   protected void drawCompass(Canvas canvas, float bearing) {
    int offset = Math.max(canvas.getHeight(), canvas.getWidth()) / 8;
    Rect r = new Rect(0, 0, 2*offset, 2*offset);
    canvas.drawBitmap(compassBase, null, r, paint);
    canvas.rotate(-bearing, offset, offset);
    canvas.drawBitmap(compassArrow, null, r, paint);
}

完全な src へのリンク: MyLocationOverlay

そこで、キャンバス上で両方のビットマップを描画する場所を指定する Rect r ウィッチを作成します。

drawBitmap の Java ドキュメントには次のように書かれています。

両方のビットマップが同じ Rect r を使用し、Rect に合わせて自動的にスケーリングされるため、MapView でコンパスをアクティブにすると、結果が完全なコンパスになるのはなぜですか。

コンパスの矢印もRectに合わせてスケーリングされているため、結果はがらくたになるはずです。

では、推論の誤りはどこにあるのでしょうか?

4

1 に答える 1

0

それらは、絶対的なサイズではなく、同じ比率を使用してスケーリングされます。あなたの質問に答えるために、キャンバスは参照としてビットマップを使用して描画されます.2つの写真画像を参照として使用して、画家とキャンバスが1つの画像を別の画像の上に描くようなものだと考えてください.

于 2012-06-30T22:02:43.110 に答える