답변

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

감사합니다.이 코드는 클러스터가 아닌 단일 마커 용이지만 내 코드 내부에서 구현하려고합니다. 그러나 하나의 질문은 createDrawableFromView를 사용하기 전에 데이터를 설정해야하며 사용할 수도 있습니다. 이것은 onBeforeClusterRendered 생성자 안에 있습니까? – Blacksword

+0

예 비트 맵을 만들기 전에 모든 데이터를 설정해야합니다. url 이미지가있는 경우 처음로드 한 다음 onBeforeClusterRendered를 사용하지 않은 마커를 만들면 시도하지 않습니다. –

+0

감사합니다. Hala에게 감사드립니다. – Blacksword