2017-09-06 1 views
0

piccaso로 사용자 정의 Infowindow 내부에 그림을 표시하려고 시도했지만 작동하지 않는 것 같습니다. Evey 마커 태그는 시작시 0입니다. 마커 ID와 고유 URL을 값으로 사용하여 URL을 확인합니다. 내 코드 :사진이있는 Google지도 API 인포 우드도 (안드로이드)

mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() { 
     @Override 
     public View getInfoWindow(Marker marker) { 
      return null; 
     } 

     @Override 
     public View getInfoContents(Marker marker) { 
      View v = getLayoutInflater().inflate(R.layout.custom_info_window,null); 

      ImageView picture = v.findViewById(R.id.icon); 
      int flag = (Integer) marker.getTag(); 


      String url = allMarkersMap.get(marker.getId()); 
      if (url.equals("null")){}else { 
       if (flag==0){marker.setTag(1); 
        Picasso.with(MapActivity.this).load(url).into(picture, new InfoWindowRefresher(marker);} 
       else{Picasso.with(MapActivity.this).load(url).into(picture);} 
      } 
      // String picURL = allMarkersMap.get(marker); 
      TextView title = v.findViewById(R.id.title); 
      title.setText(marker.getTitle()); 


      return v; 
     } 
    }); 

InfoWindowRefresher :

public class InfoWindowRefresher implements Callback { 
    Marker marker=null; 



    InfoWindowRefresher(Marker marker) { 
     this.marker=marker; 

    } 

    @Override 
    public void onError() { 
     //Log.e(getClass().getSimpleName(), "Error loading thumbnail!"); 
    } 

    @Override 
    public void onSuccess() { 
     if (marker != null && marker.isInfoWindowShown()) { 
      marker.hideInfoWindow(); 


      marker.showInfoWindow(); 
     } 
    } 
} 

답변

0

나는 비슷한 문제를 가지고 그리고 난 이런 식으로 해결 :

- 나는 getInfoContents

getInfoWindow 방법 안에 내 논리를 구현하지

- getInfoWindow 안에 이미지를로드하지만 리프레시 콜백을 추가합니다 에만 marker.isInfoWindowShown()

경우 - 마침내 성공 콜백 :

if (marker.isInfoWindowShown()) { 
      marker.showInfoWindow(); 
      marker.hideInfoWindow(); 
      marker.showInfoWindow(); 
     } 
+0

그것은 단지 하나 개의 마커와 함께 작동 내가 정말 잘 모릅니다 왜 –

+0

이 줄 url.equals ("널 (null)"); 너무 안전하지 않다 –

+0

URL이 너무 크거나 무언가,로드 라인에 resize()를 넣으면 작업 중, 도움을 주셔서 감사합니다! –