最近在做的项目里要用到地图,看了一下高德地图的API,最后决定就用高德地图,和平时不同,这次地图是要嵌在Fragment了,研究了一下网上的代码,最后实现了。下面说一下实现2D地图的方法。

1.先去高德地图官网注册Key,地址是http://lbs.amap.com/api/android-sdk/summary/;

2.根据说明下载所需的sdk.

8F60115C-4F88-4B0D-82C8-23A7B82F32CE.bmp

3.配置工程

(1)添加key

在工程的“ AndroidManifest.xml ”文件如下代码中添加Key.

E946AF69-BA78-454D-85DC-CDE68F65E719.bmp

(1)添加权限

4.布局文件

android:id="@+id/map"

android:layout_width="match_parent"

android:layout_height="match_parent" />

5.实现

public class FragmentMap extends Fragment{

private static FragmentMap fragment = null;

@ViewInject(R.id.map)

private MapView mapView;

private AMap aMap;

private View mapLayout;

public static Fragment newInstance() {

if (fragment == null) {

synchronized (FragmentMap.class) {

if (fragment == null) {

fragment = new FragmentMap();

}

}

}

return fragment;

}

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

if (mapLayout == null) {

mapLayout = inflater.inflate(R.layout.fragment_map, null);

ViewUtils.inject(this, mapLayout);

mapView.onCreate(savedInstanceState);//必须写

if (aMap == null) {

aMap = mapView.getMap();

} else {

if (mapLayout.getParent() != null) {

((ViewGroup) mapLayout.getParent()).removeView(mapLayout);

}

}

return mapLayout;

}

@Override

public void onResume() {

super.onResume();

mapView.onResume();

}

/**

* 方法必须重写

* map的生命周期方法

*/

@Override

public void onPause() {

super.onPause();

mapView.onPause();

}

/**

* 方法必须重写

* map的生命周期方法

*/

@Override

public void onSaveInstanceState(Bundle outState) {

super.onSaveInstanceState(outState);

mapView.onSaveInstanceState(outState);

}

/**

* 方法必须重写

* map的生命周期方法

*/

@Override

public void onDestroy() {

super.onDestroy();

mapView.onDestroy();

}

}

效果图如下:

Screenshot_2015-09-14-17-01-53-175x300.jpeg

转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/13773.html

75d087ef9a9fb11dc373caaf33adbf7f.png

微信打赏

支付宝打赏

感谢您对作者Lena的打赏,我们会更加努力!    如果您想成为作者,请点我

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐