Personnaliser infoWindow pour Google Maps pour Android

0. Exemple d'exécution

スクリーンショット 2019-03-13 11.47.17.png

1.setInfoWindowAdapter() Utilisez GoogleMap.setInfoWindowAdapter () pour définir un objet qui implémente l'interface InfoWindowAdapter (implémentez getInfoWindow () ou getContents ()).

public class MapsActivity extends AppCompatActivity implements OnMapReadyCallback {
    private GoogleMap mMap;
//~ Abréviation ~
    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
            @Override
            public View getInfoWindow(Marker marker) {
                return null;    //Décrivez le processus soit
            }

            @Override
            public View getInfoContents(Marker marker) {
                return null;    //Décrivez le processus soit
            }

2. Décrivez la disposition d'InfoWindow

Créez un nouveau fichier de ressources de mise en page dans res / layout / et décrivez la mise en page de infoWindow. Ajoutez une description dans res / values / strings.xml si nécessaire.

info_window_ayout.xml


<?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">
    <TextView
        android:id="@+id/tv_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/iw_1"/>
    <TextView
        android:id="@+id/tv_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/iw_2"/>
    <TextView
        android:id="@+id/tv_3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/iw_3"/>
    <Button
        android:id="@+id/bt_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/bt_1"/>

</LinearLayout>

strings.xml


<resources>
<!--~ Abréviation ~-->
    <string name="iw_1">Informations sur la première ligne</string>
    <string name="iw_2">Informations sur la deuxième ligne</string>
    <string name="iw_3">Informations sur la troisième ligne</string>
    <string name="bt_1">Vous pouvez également mettre un bouton</string>
</resources>

3. Implémentation de getInfoContents ()

            @Override
            public View getInfoContents(Marker marker) {
                View view = getLayoutInflater().inflate(R.layout.info_window_layout,null);
                return view;
            }

référence

[Personnaliser InfoWindow](https://seesaawiki.jp/w/moonlight_aska/d/%A5%A4%A5%F3%A5%D5%A5%A9%A5%A6%A5%A3%A5%F3 % A5% C9% A5% A6% A4% F2% A5% AB% A5% B9% A5% BF% A5% DE% A5% A4% A5% BA% A4% B9% A4% EB) [Info Windows | Maps SDK for Android | Google Developers] (https://developers.google.com/maps/documentation/android-sdk/infowindows#custom_info_windows)

Recommended Posts

Personnaliser infoWindow pour Google Maps pour Android
Toolchain pour Python pour Android
Achat intégré à l'application pour la bibliothèque de facturation Android Google Play 2.0
À propos de l'événement de changement de caméra de l'API Google Maps Android
La manière la plus polie d'utiliser le SDK Google Maps pour iOS