
рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ Google рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ infowindow рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЬрд┐рд╕рдореЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рдХреНрд░рдорд╢рдГ рдПрдХ рддрд╕реНрд╡реАрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЧрдИ рдереА, рдлреЙрд░реНрдо рднреАред рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рддреГрддреАрдп-рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдорд╛рдирдХ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╢реИрд▓реА
рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдкрдиреА рд╡рд┐рдВрдбреЛ рдХреА рд╢реИрд▓реА рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗ (рдЗрд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛ Theme.Light рд╢реИрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЙрд╕реА рдкреНрд░рднрд╛рд╡ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рд░ рдЬрдЧрд╣ рдФрд░ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ)ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рд╢реИрд▓реА рдХреЛ
рдорд╛рдиреЛрдВ / рд╢реИрд▓рд┐рдпреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ :
<style name="TransparentBackground" parent="android:Theme.Light"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:backgroundDimEnabled">false</item> </style>
рдкреГрд╖реНрдарднреВрдорд┐
рдЕрдм рд╣рдореЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд┐рддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ "Google" рдбреНрд░рд╛рдЗрд╡ рд▓рд┐рдпрд╛ (рд╣рдо Paint.NET рдореЗрдВ рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ):

рдареАрдХ рд╣реИ, рдЕрдм рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ
Res / drawable рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ
star.png рдбрд╛рд▓реЗрдВ ред
рд╕реАрдзреЗ infowindow рдХрд╛ рд╡рд░реНрдгрди
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЕрдкрдиреА рд╡рд┐рдВрдбреЛ рдХреЗ рд▓реЗрдЖрдЙрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдЙрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдиреАрдЪреЗ,
Res / рд▓реЗрдЖрдЙрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓
custom_infowindow.xml рдмрдирд╛рддреЗ рд╣реИрдВ:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <ImageView android:layout_height="162dp" android:layout_width="150dp" android:layout_marginLeft="15dp" android:src="@drawable/star" /> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_marginTop="80dp" android:layout_marginLeft="51dp" android:textSize="12sp" android:text="@string/hello_world" /> </RelativeLayout>
рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рд╣рдо рдЫрд╡рд┐ рдХреЛ
ImageView рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред Infowindow рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдордиреЗ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб!" рдкрд╛рда рдХреЗ рд╕рд╛рде рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рд╡реНрдпреВ рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдЗрдВрдбреЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓реЗрдЖрдЙрдЯ рддрддреНрд╡реЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЙрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдмреАрдЪ рдореЗрдВ рд╕реНрдЯрд╛рд░ рд░рдВрдЧ рд╕реЗ рднрд░рд╛ рд╣реЛрдЧрд╛, рддреЛ рд╡рд░реНрдгрди рдХреЗ рдХреНрд░рдо рдХреЗ рдХрд╛рд░рдг, рдкрд╛рда рдЪрд┐рддреНрд░ рдХреЗ рдКрдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

рд╣рдо рдЕрдкрдирд╛ рд▓реЗрдЖрдЙрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ
рдЕрдм
InfoWindowAdapter рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:
@Override public View getInfoWindow(Marker marker) { ContextThemeWrapper wrapper = new ContextThemeWrapper(getApplicationContext(), R.style.TransparentBackground); LayoutInflater inflater = (LayoutInflater) wrapper.getSystemService(LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.custom_infowindow, null); return layout; } @Override public View getInfoContents(Marker marker) { return null; }
рдпрд╣рд╛рдВ рд╣рдо рд▓реЗрдЖрдЙрдЯ рдХреЗ рд▓рд┐рдП рдереАрдо рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
ContextThemeWrapper рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣рдо рдПрдХ
рдлреНрд▓реЛрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рджреГрд╢реНрдп рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдорд╛рд░реА рд╡рд┐рдВрдбреЛ рд╣реЛрдЧреА (рдпрд╣
getInfoWindow рдореЗрдВ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ,
getInfoContents рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдЧрд░ рд╣рдо
getInfoContents рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╡рд┐рдВрдбреЛ рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдВрдбреЛ рд╕реНрд╡рдпрдВ рдорд╛рдирдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧреА) )ред
рдЫреЛрдЯреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдорд▓рд╛
рдореВрд▓ рд░реВрдк рд╕реЗ, рд╕рдм рдХреБрдЫ, рдЕрдм рд╣рдо рдЕрдкрдиреЗ GoogleMap рдХреЛ
setInfoWindowAdapter (...) рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдбреЗрдкреНрдЯрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЖрдирдВрдж рд▓реЗрддреЗ рд╣реИрдВ =)ред