2011-08-01 3 views
1

H MapFieldに2つのカスタムロケーションマーカーを描画するコードを記述しました。しかし、ズームインしたりズームアウトしたりすると、位置マーカーは同じサイズになります。位置マーカーをズームレベルに応じて調整する必要があります。誰かが私にこれを置くのを助けてくれますか?Mapfieldのズームインとズームアウトで位置マーカーを調整

BR、 Suppi

編集:

は、これまでのところ

mPointDest = new XYRect[mPoints.length]; 
      for (int i = 0; i < mPoints.length; i++) { 
      XYPoint fieldOut = new XYPoint(); 
      convertWorldToField(mPoints[i], fieldOut); 
      mIcon = Bitmap.getBitmapResource("location.png"); 
     int imgW = mIcon.getWidth(); 
     int imgH = mIcon.getHeight(); 
     mPointDest[i] = new XYRect(fieldOut.x - imgW/2, 
        fieldOut.y - imgH, imgW, imgH); 
      graphics.drawBitmap(mPointDest[i], mIcon, 0, 0); 

とズームのために、これを行うことができる午前:

protected boolean keyChar(char character, int status, int time) 
    { 
     // 'i' will zoom in. 
     if (character == 'i') 
     { 

       mMapField.setZoom(Math.max(mMapField.getZoom() - 1, mMapField.getMinZoom())); 
       return true; 

     } 
     // 'o' will zoom out 
     if (character == 'o') 
     { 

      mMapField.setZoom(Math.min(mMapField.getZoom() + 1, mMapField.getMaxZoom())); 
      return true; 
     } 

     return super.keyChar(character, status, time); 
    } 

、これはどのように疑問に思った後にズームレベルに基づいてビットマップを調整してください。誰かが私にいくつかのアイデアを与えてくれますか?

+0

私の投稿を更新しました。 – Suppi

+0

大丈夫ですので、マップのズームレベルに基づいて "location.png"グラフィックを拡大(大きくする/小さくする)しますか? –

+0

まあまあ、私はまた、マップフィールドに円を描いて、私はズームレベルに基づいて円を調整する必要があります。 – Suppi

答えて

1

ズームはマップ自体にのみ影響します。独自のグラフィックスのサイズを変更する場合は、手動でスケーリングする必要があります。たとえば、プロジェクト内に複数のサイズの "location.png"リソースを含めてから、ズームレベルに基づいて適切なリソースを選択するか、Bitmap.scaleInto()メソッドを使用して、即座にグラフィックをズームすることができます。

オンザフライの方法では、元のグラフィックの複数のサイズを含める場合よりも低い品質の結果が得られることに注意してください(私はあなたのプロジェクトに含めるために高解像度のオリジナルを持っていると仮定しています)。

+0

返信ありがとう、今これは画像です。私が地点の周りに円を描いているとどうなりますか?どのようにビットマップを変更しますか?またはその事柄について、aからbへのルート。あなたは、マップからピクセルを取得する必要があるすべてのズームレベルについて、そのビットマップを再描画に基づいて言うことを意味します。 – Suppi

+0

はい、正確です。あなたが描くものはすべて、世界ではなくフィールドに関連するものです。したがって、 'convertWorldToField()'と 'convertFieldToWorld()'メソッドです。 –

+0

すべてのズームレベルでConvertWorldtoField()を使用しようとしましたが、この出力は変わるようです。変更する必要がありますか? – Suppi

関連する問題