2015-01-07 6 views
2

은 지금까지 나는이 방법이 위의 코드 : https://gist.github.com/TimPim/5902100안드로이드 구글지도 HTML 내가 현재 좌표와 HTML 코드가 포함 된 JSON 개체를 구문 분석하고 ... Android 용 Google지도에 그들을 표시 일하고

이 방법은 성공적으로 마커를 표시합니다. 내 JSON 객체의 일부에서 html 코드가 들어있는 "contentString"이라는 레코드가 있다고 가정 해 보겠습니다.

https://developers.google.com/maps/documentation/javascript/examples/infowindow-simple

나는이 대답에보고하고 그것을 자신을 구현하는 시도했지만 성공하지 : 나는 구글이 자바 스크립트 API 여기를 보여줍니다처럼이 정보 창에서 이것을 제대로 표시 할 수있을 것입니다 방법, 궁금 해서요 : Android Google Maps V2 Title or Snippets Strings From HTML

누군가가 내게 더 자세한 솔루션을 보여줄 수 있고이 도메인에서 어떻게 적용 할 수 있는지 알려 주시면 대단히 감사하겠습니다. 내가 볼 수 있듯이 안드로이드는 목표를 달성하기 위해

답변

2

알아 냈어. 다음과 같이 할 수있는 setUpMapIfNeeded 방법을 편집 :

marker.getTitle는(), 다른 방법으로 마커에서 제목을 얻는다 (우리의 HTML 콘텐츠를 포함하는) 우리의 새로 생성 된 InfoWindow는 텍스트를 설정
private void setUpMapIfNeeded() { 
    // Do a null check to confirm that we have not already instantiated the map. 
    if (mMap == null) { 
     // Try to obtain the map from the SupportMapFragment. 
     mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)) 
       .getMap(); 
     // Check if we were successful in obtaining the map. 
     if (mMap != null) { 
      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.infowindow_layout, null); 
        TextView textView = (TextView) v.findViewById(R.id.marker_label); 
        Spanned spannedContent = Html.fromHtml(marker.getTitle()); 
        textView.setText(spannedContent, TextView.BufferType.SPANNABLE); 
        return v; 
       } 
      }); 
      setUpMap(); 
     } 
    } 
} 

. 사람이 내 대답을 명확히하기 위해 저를 원하시면

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<LinearLayout 
    android:id="@+id/station_info_layout" 
    android:layout_width="205dp" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 

    <ImageView 
     android:id="@+id/marker_icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 

    <TextView 
     android:id="@+id/marker_label" 
     android:layout_marginLeft="5dp" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

</LinearLayout> 


</LinearLayout> 

저에게 알려 주시면하십시오 : 나는이처럼 보이는 입술 아래 infowindow_layout.xml/레이아웃을 생성 https://www.youtube.com/watch?v=g7rvqxn8SLg

:이 튜토리얼은 매우 도움이되었다 이 게시물을 수정할 것입니다.

0

, 당신은 Custom info windows를 사용할 수 있습니다.

이렇게하려면 InfoWindowAdapter 인터페이스의 구체적인 구현을 만든 다음 구현시 GoogleMap.setInfoWindowAdapter()을 호출해야합니다. 인터페이스에는 다음 두 가지 구현 방법이 포함되어 있습니다. getInfoWindow(Marker)getInfoContents(Marker). API는 먼저 getInfoWindow (Marker)를 호출하고 null이 반환되면 getInfoContents(Marker)을 호출합니다. 이것도 null를 돌려주는 경우, 디폴트 정보 윈도우가 사용됩니다.

자세한 내용은 here을 참조하시기 바랍니다.