在Fragment中集成百度地图

来源:互联网 发布:淘宝代销的不利 编辑:程序博客网 时间:2024/05/09 15:13

1.下载百度地图SDK,下面是官方下载地址:

http://developer.baidu.com/map/index.php?title=androidsdk/sdkandev-download

2.根据http://lbsyun.baidu.com/index.php?title=androidsdk/guide/buildproject中开发指南完成密匙申请环境配置及发布,

  确保.so及jar文件版本的一致性,并且将其放置在相应位置

3.完成Hello BaiduMap中以下两个步骤:在application中添加开发密钥    添加所需权限  

4.在Fragment布局xml文件中添加地图控件;

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center"    android:orientation="vertical"    android:background="#F8F8FF">    <com.baidu.mapapi.map.MapView        android:id="@+id/bmapView"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:clickable="true" /></LinearLayout>
注意!!!:在这一步中有可能报错:

The following classes could not be instantiated:

com.baidu.mapapi.map.MapView (Open Class, Show Exception, Clear Cache)

Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE……

不必在意,这个不影响后续工作,编译是可以通过的!

5.接下来就是在java代码中实现了:

public class MyFragment extends Fragment {    MapView mMapView = null;    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,                             Bundle savedInstanceState)    {        //在使用SDK各组件之前初始化context信息,传入ApplicationContext        //注意该方法要再setContentView方法之前实现        SDKInitializer.initialize(getActivity().getApplicationContext());        View view = inflater.inflate(R.layout.task_layout, container, false);        mMapView = (MapView)view.findViewById(R.id.bmapView);        return view;    }    @Override    public void onResume() {        super.onResume();        //在Fragment执行onResume时执行mMapView. onResume (),实现地图生命周期管理        mMapView.onResume();    }    @Override    public void onPause() {        super.onPause();        //在<span style="font-family: 微软雅黑, 'Microsoft YaHei', sans-serif;">Fragment</span>执行onPause时执行mMapView. onPause (),实现地图生命周期管理        mMapView.onPause();    }    @Override    public void onDestroy() {        super.onDestroy();        //在Fragment执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理        mMapView.onDestroy();    }}

到此为止,运行以下看看效果吧~

转载请注明出处http://write.blog.csdn.net/postedit?ref=toolbar&ticket=ST-104229-Pccqap1iFIc1gpOpBGtt-passport.csdn.net

谢谢~



0 0