随笔

Google Maps Android API 需要 API 级别 12 或更高级别,才能支持 MapFragment 对象。 如果您的目标是低于 API 级别 12 的应用,可通过 SupportMapFragment 类访问同一功能。 您还必须提供 Android 支持库

使用 XML 属性

此部分介绍在您利用 XML 布局文件向应用添加地图的情况下如何设置地图的初始状态。

Maps API 为 MapFragment 或 MapView 定义了一组自定义 XML 属性,您可以利用它们直接在布局文件内配置地图的初始状态。 当前定义的属性如下:

  • mapType。 它用于指定要显示的地图类型。 有效 值包括 nonenormalhybridsatellite 和 terrain
  • cameraTargetLatcameraTargetLngcameraZoomcameraBearing、 cameraTilt。 它们用于指定摄像头的初始位置。 请参阅此处,了解有关摄像头位置及其属性的更多详情。
  • uiZoomControlsuiCompass。 它们用于指定您是否希望将缩放控件和指南针出现在地图上。 请参阅UiSettings,了解更多详情。
  • uiZoomGesturesuiScrollGesturesuiRotateGesturesuiTiltGestures。 它们用于指定在与地图交互时启用/禁用的手势。 请参阅 UiSettings,了解更多详情。

  • zOrderOnTop。 控制地图视图的表面是否覆盖在其窗口上。 请参阅 SurfaceView.setZOrderOnTop(boolean),了解更多详情。 请注意,如果指定此属性,将会覆盖所有其他可能出现在地图上的视图(例如缩放控件、my location 按钮)。

  • useViewLifecycle。 只对 MapFragment 有效。 此属性指定是否应将地图的生命周期与 Fragment 的视图或 Fragment 本身关联。 请参阅此处,了解更多详情。

  • liteMode。 值 true 会将地图设置为精简模式。 精简模式地图是指地图的一种位图图像,它支持完整 API 提供的一部分功能。 该属性的默认值 为 false

如需在您的 XML 布局文件内使用这些自定义属性,您必须先添加下列命名空间声明。 您可以选择任何命名空间,不必一定要选择 map

 
xmlns:map="http://schemas.android.com/apk/res-auto"

然后您就可以像使用标准 Android 属性那样,向您的布局组件中添加带 map: 前缀的属性。

下面这段 XML 代码展示了如何配置带有一些自定义选项的 MapFragment。 这些属性同样可以应用于 MapView

 
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:map="http://schemas.android.com/apk/res-auto"
  android:name="com.google.android.gms.maps.SupportMapFragment"
  android:id="@+id/map"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  map:cameraBearing="112.5"
  map:cameraTargetLat="-33.796923"
  map:cameraTargetLng="150.922433"
  map:cameraTilt="30"
  map:cameraZoom="13"
  map:mapType="normal"
  map:uiCompass="false"
  map:uiRotateGestures="true"
  map:uiScrollGestures="false"
  map:uiTiltGestures="true"
  map:uiZoomControls="false"
  map:uiZoomGestures="true"/>
原文地址:https://www.cnblogs.com/Aurel1ano/p/8976334.html