3

Android SDK 2.3.3 Google マップ V2

現在、円のオーバーレイを描画し、それらを MapView に追加しています。サイズは特定の値によって決定され、円の RadialGradient 色を別のもので決定しようとしています。

            circle.setShader(new RadialGradient(pt.x, pt.y, 40, Color.argb(150, 252, 5, 5), Color.argb(60, 234, 231, 0), TileMode.MIRROR));
            canvas.drawCircle(pt.x, pt.y, radius, circle);

それは機能しますが、エッジが従来のヒートポイント マップに似ていることを望みます。

現時点の

現在のヒートマップ

達成したいこと(形状は円形にしたい)

必要なヒート マップ

より典型的なヒートマップの外観を実現するために、電流の真下にかなり大きな領域で円を描くことを考えていますが、これはモバイルデバイスでこれを行っていることを考えるとパフォーマンスに影響を与えます。ズームインまたはズームアウト アクション。

4

1 に答える 1

0

ここにはいくつかの明白なオプションがあり、これを行うためのより多くの非自明な方法もあると確信しています。

  • あなたが提案したように複数の同心円を描く
  • 画像から同心円パターンをロードして描画します(レンダリングは少なくなりますが、もちろん、画像をロードする必要があります)
  • を使用しBitmapShaderて、探しているものに一致するカスタムグラデーションで単一の円を描画します:http://developer.android.com/reference/android/graphics/BitmapShader.html

残念ながら、これらのオプションのどれが最高のパフォーマンスを提供するかはわかりません。そのため、おそらく自分でテストする必要があります。ヒートマップポイントの数が多い場合は、後の2つのオプションのいずれかがより効率的であると思いますが、それは推測にすぎません。

于 2012-08-01T19:22:45.957 に答える