简体   繁体   中英

Can I change a SupportMapFragment to a Mapview on Google Maps v2?

Does Google allow using MapView versus MapFragments or SupportMapFragments on v2? I have a layer.xml file that is using the SupportMapFragment how do I change it to a MapView while utilizing the LinearLayout and RelativeLayouts I am using below?

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


    <Button
        android:id="@+id/btn_draw"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text=" Get Directions"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true" />

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/btn_find"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/str_btn_find"
            android:layout_alignParentRight="true" />

        <EditText
            android:id="@+id/et_location"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inputType="text"
            android:hint="@string/hnt_et_location"
            android:layout_toLeftOf="@id/btn_find" />

    </RelativeLayout>



    <fragment 
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment"/>
</LinearLayout>

How does it change my code as well?

/**
 * Shows the users current location on the map
 */
private void showCurrentLocationOnMap(){
    lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    mf= (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);

    map = mf.getMap();

    //map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

    ll = new PointLocationListener();

    boolean isGPS = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);

    if (!isGPS){
        Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
        intent.putExtra("enabled", true);
        sendBroadcast(intent);
    }

    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 10, ll);
}

Does Google allow using MapView versus MapFragments or SupportMapFragments on v2?

Yes.

how do I change it to a MapView while utilizing the LinearLayout and RelativeLayouts I am using below?

AFAIK, it should simply be:

Step #1: Replace your <fragment> with:

<com.google.android.gms.maps.MapView 
  android:id="@+id/map"
  android:layout_width="match_parent"
  android:layout_height="match_parent"/>

Step #2: Follow the instructions on the MapView class documentation to forward lifecycle events to the view

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM