答えて

1

私がいることを使用したものよりも簡単な方法があるかどうか私にはわかりませんデータセットが大きい場合、このメソッドは時間がかかりますので、小さなデータセットで使用するか、デザイナーと他のオプションを話してください。

このレイアウトのビットマップを取得したいレイアウトを作成することができます。これは、マーカーの追加だけが画像を取得するため、ビットマップをマーカーとしてマーカーに追加します。

最初のステップに膨張し、あなたのレイアウトにデータを設定

View marker = ((LayoutInflater) getActivity() 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE)) 
       .inflate(R.layout.marker_layout, null); 

Bitmap bitmap = createDrawableFromView(
           getActivity(), marker); 

は第三これは

MarkerOptions mo = new MarkerOptions().position(
            new LatLng(lat, lng)) 
            // .title(address) 
            .snippet(i + "") 
            .icon(BitmapDescriptorFactory 
              .fromBitmap(bitmap)); 
          Marker customMarker = googleMap.addMarker(mo); 

マーカーとしてビットマップを追加し、このビューからビットマップを取得ビットマップを取得する方法

public static Bitmap createDrawableFromView(Context context, View view) { 
    DisplayMetrics displayMetrics = new DisplayMetrics(); 
    if (context != null) { 
     ((Activity) context).getWindowManager().getDefaultDisplay() 
       .getMetrics(displayMetrics); 
     view.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 
       LayoutParams.WRAP_CONTENT)); 
     view.measure(displayMetrics.widthPixels, displayMetrics.heightPixels); 
     view.layout(0, 0, displayMetrics.widthPixels, 
       displayMetrics.heightPixels); 
     view.buildDrawingCache(); 
     Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(), 
       view.getMeasuredHeight(), Bitmap.Config.ARGB_8888); 

     Canvas canvas = new Canvas(bitmap); 
     view.draw(canvas); 
     return bitmap; 
    } 
    return null; 
} 

それはとても痛いものでした。

+1

私はそれを試してみるつもりですが、このコードはクラスタではありませんが、私のコードの中で実装しようとしますが、もう1つの質問はcreateDrawableFromViewを使用する前にデータを設定する必要があり、これはonBeforeClusterRenderedコンストラクタ内にありますか? – Blacksword

+0

はいビットマップを作成する前にすべてのデータを設定しなければなりません URL画像がある場合は最初にロードし、次にマーカーを作成します。私はonBeforeClusterRenderedを使用しませんでしたので、わかりません。 –

+0

それは私のために働いた感謝ハラ – Blacksword

関連する問題