0
A
答えて
0
4
public class MyClusterItemRenderer extends DefaultClusterRenderer<MyClusterItem> {
private final IconGenerator mIconGenerator;
private final ShapeDrawable mColoredCircleBackground;
private final float mDensity;
private SparseArray<BitmapDescriptor> mIcons = new SparseArray();
public MyClusterItemRenderer(Context context, GoogleMap map, ClusterManager<MyClusterItem> clusterManager) {
super(context, map, clusterManager);
mIconGenerator = new IconGenerator(context);
mColoredCircleBackground = new ShapeDrawable(new OvalShape());
mDensity = context.getResources().getDisplayMetrics().density;
SquareTextView squareTextView = new SquareTextView(context);
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(-2, -2);
squareTextView.setLayoutParams(layoutParams);
squareTextView.setId(com.google.maps.android.R.id.text);
int twelveDpi = (int)(12.0F * this.mDensity);
squareTextView.setPadding(twelveDpi, twelveDpi, twelveDpi, twelveDpi);
this.mIconGenerator.setContentView(squareTextView);
mIconGenerator.setTextAppearance(com.google.maps.android.R.style.ClusterIcon_TextAppearance);
ShapeDrawable outline = new ShapeDrawable(new OvalShape());
outline.getPaint().setColor(Color.parseColor("#FFFFFF"));
LayerDrawable background = new LayerDrawable(new Drawable[]{outline, this.mColoredCircleBackground});
int strokeWidth = (int) (this.mDensity * 3.0F);
background.setLayerInset(1, strokeWidth, strokeWidth, strokeWidth, strokeWidth);
mIconGenerator.setBackground(background);
}
@Override
protected void onBeforeClusterRendered(Cluster<MyClusterItem> cluster, MarkerOptions markerOptions) {
int bucket = this.getBucket(cluster);
BitmapDescriptor descriptor = (BitmapDescriptor)this.mIcons.get(bucket);
if(descriptor == null) {
this.mColoredCircleBackground.getPaint().setColor(this.getColor(bucket));
descriptor = BitmapDescriptorFactory.fromBitmap(this.mIconGenerator.makeIcon(String.valueOf(cluster.getSize())));
this.mIcons.put(bucket, descriptor);
}
markerOptions.icon(descriptor);
}
}
:
clusterManager.setRenderer(new MyClusterItemRenderer(getApplicationContext(), mGoogleMap, clusterManager));
関連する問題
- 1. グーグルマップ上にクラスタリングされたマーカーの正確な数を表示するにはどうすればよいですか?
- 2. 可視領域に表示されたマーカーの数を確認する
- 3. Googleマップのマーカーが正確な場所に表示されていません
- 4. osmdroidにマーカーが表示されない
- 5. 複数のマーカーがGoogleマップに表示されない理由
- 6. Googleマップに複数のマーカーを表示
- 7. 複数のマーカーを地図に表示
- 8. MapViewのマーカーが表示されます
- 9. ローカルに定義されたgeoJSONからマーカーをクラスタリングする方法は?
- 10. Google Maps JS API + JSON - 複数のマーカーが表示されない
- 11. ジオコンプリート - マーカーが表示されない
- 12. Snazzy maps - マーカーが表示されない
- 13. OsmDroidマーカーが表示されない
- 14. コピーされたファイル数のXCOPY確認を非表示
- 15. ネイティブのAirbnbマーカーに反応します:マーカーは正常に消えますが、再表示されません。
- 16. 最初のGoogleMapsマーカーは表示されませんが、2番目のマーカーは表示されません
- 17. ハイチャートのカラムバーが正確に表示されない
- 18. 数値積分後に不正確な値の範囲が表示される
- 19. codenameone:毎秒システムの正確な秒数を表示したい
- 20. マーカーが表示されているかどうかを確認する(マップ) - マップボックス
- 21. Visual Studioで[インストールされた製品]が表示される正確な一覧
- 22. 配列値が値に表示されるべき正確
- 23. リーフレット:マップに動的に挿入されている表示/非表示のマーカー
- 24. 外部定義されたマーカーはSVGには表示されません
- 25. OSMBonuspackカスタムKMLマーカーが間違った色で表示される
- 26. フィルタでHashMapマーカーを表示または非表示にする
- 27. 正確なカテゴリの投稿件数を表示するには?
- 28. Googleマップのマーカーがモーダルポップアップの中央に表示されない
- 29. Googleマップのマーカーがユーザーの場所に表示されない
- 30. GoogleマップのマーカーがiPhone/iPadのInfoBubbleに表示されない