显示高德地图
1..Framlayout帧布局
直接在屏幕上开辟出一块空白区域,添加的所有组件都放置在区域左上角。
大小由最大子控件决定。
前景图像:永远处于帧布局最顶的,直接面对用户的图像(不会被覆盖的图片)
android:foreground:
设置该帧布局容器的前景图像
android:foregroundGravity:
设置前景图像显示的位置
自定义view时,view已完成所有逻辑,则只需一个容器将其装入就好
关键的是layout_gravity,负责控制控件的位置。
2.com.amap.api.maps2d.AMap
Com.amap.api.maps2d为地图显示包
类 MapView
- java.lang.Object
- FrameLayout
- com.amap.api.maps2d.MapView
- FrameLayout
public class MapView extends FrameLayout
一个显示地图的视图(View)。它负责从服务端获取地图数据。当屏幕焦点在这个视图上时,它将会捕捉键盘事件(如果手机配有实体键盘)及屏幕触控手势事件。
使用这个类必须按照它的生命周期进行操控,
你必须参照以下方法onCreate(Bundle)、 onResume()、onPause()、onDestroy()、onSaveInstanceState(Bundle)。 当MapView初始化完成后,用户可以通过getMap()方法获得一个AMap 对象。如果MapView 没有初始成功,则执行getMap()将返回null。
方法:public AMap getMap()
返回一个与这个视图(view)相关联的AMap对象
如果没有成功初始化,则调用此方法会返回Null
amap = mapview.getMap();
接口AMap.InfoWindowAdapter(可个性定制信息窗口视图)
Public static interface AMap.InfoWindowAdapter
提供了一个可个性化定制的信息窗口视图的类。这个类提供的方法是当一个信息窗口显示时回调的方法。
无论是用户手势调用显示信息窗口或一个程序调用方法显示都会触发回调。当你构造一个信息窗口时,这个类的方法将会按默认的顺序调用(先Windows后Contents)。
View getInfoWindow(
Marker
marker)弹出的信息窗口的marker对象
提供了一个个性化定制信息窗口的marker 对象。如果这个方法返回一个view,则它会被用来当对整个信息窗口。
如果你在调用这个方法之后修改了信息窗口的view对象 ,那么这些改变不一定会起作用 (所以注意应将信息窗口view设置好)。
如果这个方法返回null,则将会使用默认的信息窗口风格,内容将会从getInfoContents(Marker)方法获取。
View getInfoContents(
Marker
marker)
提供了一个给默认信息窗口定制内容的方法。这个方法
只有在getInfoWindow(Marker)返回null 时才会被调用。
如果这个方法返回一个view ,它将替代现有的默认的信息窗口,如果你在调用这个方法之后修改了view,则这些改变将不一定会呈现在信息窗口上 。如果这个方法返回null,将使用默认的方式渲染信息窗口。
类 LatLng(存储经纬度坐标值的类,单位角度)
public final class
LatLng
extends java.lang.Object
implements java.lang.Cloneable
LatLng
(double latitude垂直纬度, double longitude水平经度)
使用传入的经纬度构造LatLng 对象,一对经纬度值代表地球上一个地点
标注(Marker地图覆盖物之一)
Marker 是在地图上的一个点绘制图标。这个图标和屏幕朝向一致,和地图朝向无关。一个marker有如下属性:
锚点:图标摆放在地图上的基准点。默认情况下,锚点是从图片下沿的中间处。
位置:marker是通过经纬度的值来标注在地图上的。
标题:当点击Marker 显示在信息窗口的文字,随时可以更改。
片段:除了标题外其他的文字,随时可以更改。
图标:Marker 显示的图标。如果未设置图标,API 将使用默认的图标,高德为默认图标提供了10 种颜色备选。默认情况下,Marker 是可见的。你们随时更改marker 的可见性。
方法:
public void setPosition(
LatLng
latlng)
设置marker 的经纬度位置。
public void setObject(java.lang.Object object)
设置Marker的附加对象。用户可以自定义Marker的属性。
public void setTitle(java.lang.String title)
设置marker 的标题。