android 内嵌地图,Android Fragment里嵌入高德地图【原创】
最近在做的项目里要用到地图,看了一下高德地图的API,最后决定就用高德地图,和平时不同,这次地图是要嵌在Fragment了,研究了一下网上的代码,最后实现了。下面说一下实现2D地图的方法。1.先去高德地图官网注册Key,地址是http://lbs.amap.com/api/android-sdk/summary/;2.根据说明下载所需的sdk.3.配置工程(1)添加key在工程的“ Android
最近在做的项目里要用到地图,看了一下高德地图的API,最后决定就用高德地图,和平时不同,这次地图是要嵌在Fragment了,研究了一下网上的代码,最后实现了。下面说一下实现2D地图的方法。
1.先去高德地图官网注册Key,地址是http://lbs.amap.com/api/android-sdk/summary/;
2.根据说明下载所需的sdk.

3.配置工程
(1)添加key
在工程的“ AndroidManifest.xml ”文件如下代码中添加Key.

(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();
}
}
效果图如下:

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

微信打赏
支付宝打赏
感谢您对作者Lena的打赏,我们会更加努力! 如果您想成为作者,请点我
更多推荐

所有评论(0)