Android,如何从XML布局添加Google地图选项?

时间:2013-04-24 03:30:30

标签: android android-mapview google-maps-android-api-2

我有一个包含MapView的片段。我在XML文件中添加了这个视图,如下所示:

<?xml version="1.0" encoding="utf-8"?>

<com.google.android.gms.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:id="@+id/mapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"
    map:uiCompass="true"
    android:background="#00000000" />

我已经将它链接到我的代码:

public class HotSpotsFragment extends MainFragment implements LocationListener {

    private static final String TAG = "HotSpotsFragment";
    private Context context;
    private LocationManager locationManager;
    private MapView mapView;
    private GoogleMap googleMap;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        // create view
        View view = inflater.inflate(R.layout.fragment_hot_spots, container, false);

        // Getting context
        context = getActivity().getApplicationContext();

        // Make sure user's device supports Google play services
        try {
            MapsInitializer.initialize(getActivity());
        } catch (GooglePlayServicesNotAvailableException e) {
            Log.e(TAG, "Google play service is not available.");
            Toast.makeText(getActivity().getApplicationContext(), R.string.hot_spots_not_supported, Toast.LENGTH_LONG).show();
            return null;
        }

        Log.i(TAG, "Google play service is available.");

        mapView = (MapView) view.findViewById(R.id.mapView);
        mapView.onCreate(savedInstanceState);

        googleMap = ((MapView) view.findViewById(R.id.mapView)).getMap();
        if(googleMap == null) {
            Toast.makeText(getActivity().getApplicationContext(), R.string.hot_spots_not_supported, Toast.LENGTH_LONG).show();
            return null;
        }

        Log.i(TAG, "View created");

        return view;
    }
.
.
.
}

我想添加以向地图视图添加选项。根据{{​​3}}上提到的内容,“以编程方式向应用程序添加地图时可以使用这些选项(而不是通过XML)。如果您使用的是MapFragment,则可以使用这些选项静态工厂方法newInstance(GoogleMapOptions)。如果您使用的是MapView,则可以使用构造函数MapView(Context,GoogleMapOptions)传递这些选项。“最后我的情况,“如果您使用XML添加地图,那么您可以使用自定义XML标记应用这些选项。

我没有找到任何示例来展示如何通过XML添加选项。我想在我的XML代码中添加zOrderOnTop =“true”。

任何建议都将不胜感激。感谢

1 个答案:

答案 0 :(得分:6)

就像

一样简单
<com.google.android.gms.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:id="@+id/mapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"
    map:uiCompass="true"
    map:zOrderOnTop="true"
    map:uiZoomControls="true"
    android:background="#00000000" />

然而,新问题是添加map:zOrderOnTop="true"将从屏幕中删除叠加对象,例如ZoomIn / ZoomOut :( 有关详细信息,请参阅this link