1

円と矢印の2つの画像があります。現在のGPS座標と地図上で選択したGPS座標の間の距離を計算します。次に、円の画像の上に矢印を配置し、矢印で計算された距離を配置する必要があります。どうすればこれを実装できますか?何かのようなもの

ここに画像の説明を入力してください

編集:矢印画像を中央に配置し、テキストを矢印の上に配置するにはどうすればよいですか?

 public class CompassOverlay extends Overlay
{  
private float angle;

public CompassOverlay(float angle)
{
    this.angle=angle;

}

  @Override
  public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) {
    super.draw(canvas, mapView, shadow);           

   Bitmap back =BitmapFactory.decodeResource(mapView.getResources(),R.drawable.tfm_compass_back);
   Bitmap arrowBitmap = BitmapFactory.decodeResource(mapView.getResources(),R.drawable.tfm_compass_arrow);

// Create blank bitmap of equal size for back
   Bitmap canvasBitmap = back.copy(Bitmap.Config.ARGB_8888, true);
   canvasBitmap.eraseColor(0x00000000);

   // Create canvas
    Canvas canvasBack = new Canvas(canvasBitmap);

    // Create rotation matrix
    Matrix rotateMatrix = new Matrix();
    rotateMatrix.setRotate(angle, canvasBack.getWidth()/2, canvasBack.getHeight()/2);

    canvas.drawBitmap(back, 0.0f, 0.0f, null);

   // Draw bitmap onto canvas using matrix
    canvasBack.drawBitmap(arrowBitmap, rotateMatrix, null);

    BitmapDrawable bitmapDrawable= new BitmapDrawable(canvasBitmap);
    canvas.drawBitmap(bitmapDrawable.getBitmap(), 0.0f, 0.0f, null);
    return true;
  }


} 

ここに画像の説明を入力してください

4

2 に答える 2

0

そのためのサンプルアプリがあります。[新規] -> [プロジェクト] -> [Android] -> [Android サンプル プロジェクト] に移動します。ApiDemoes を選択します。完全なコードを含む Compass アプリがあります

于 2012-09-09T09:23:56.207 に答える
0

これは有望に見えます:

  // Create rotation matrix
  Matrix rotateMatrix = new Matrix();
  rotateMatrix.setRotate(angle, canvas.getWidth()/2, canvas.getHeight()/2);

  // Draw bitmap onto canvas using matrix
  canvas.drawBitmap(arrowBitmap, rotateMatrix, null);

ここにあります: MapView で運転方向を示す矢印を描画するにはどうすればよいですか?

于 2012-09-09T09:58:26.320 に答える