android司乘同显sdk | 百度地图api sdk-凯发k8官方旗舰厅

凯发k8官方旗舰厅-凯发app官方网站
全部服务产品
开发者频道
服务升级
登录
导航
下载开发文档

导航有2种模式,分别是轻导航和专业导航。

轻导航模式

前台轻导航的实现需要在activity.oncreate()或者fragment.oncreateview()中初始化轻导航view,把轻导航view add进入第三方app页面布局中,还需要在activity或者fragment的生命周期调用轻导航的生命周期,相关方法在baidunavimanagerfactory.getlightnavimanager()中:

/**
* 获取百度地图轻导航view
*
* @param activity
*
* @return
*/
viewoncreate(activity activity);
/**
* 需要在activity的onstart() 或者 fragment的onstart() 中调用
*/
voidonstart();
/**
* 需要在activity的onresume() 或者 fragment的onresume() 中调用
*/
voidonresume();
/**
* 需要在activity的onpause() 或者 fragment的onpause() 中调用
*/
voidonpause();
/**
* 需要在activity的onstop() 或者 fragment的onstop() 中调用
*/
voidonstop();
/**
* 需要在activity的ondestroy() 或者 fragment的ondestroy() 中调用
*
* @param isswitchtonavi 是否准备切换到专业导航模式
*/
voidondestroy( boolean isswitchtonavi);

调用方法以oncreate为例:

@override
publicviewoncreateview(layoutinflater inflater,viewgroup container,bundle savedinstancestate){
contentview = inflater.inflate(r.layout.onsdk_fragment_light_navi, container,false);
// 获取百度地图轻导航view
view view =baidunavimanagerfactory.getlightnavimanager().oncreate(getactivity());
framelayout.layoutparams layoutparams =newframelayout.layoutparams(framelayout.layoutparams.match_parent,
framelayout.layoutparams.match_parent);
if(view !=null){
framelayout contentcontainer = contentview.findviewbyid(r.id.content_container);
baidunavimanagerfactory.getlightnavisettingmanager().setroutemargin(
100,
screenutil.getinstance().dip2px(280),
100,
screenutil.getinstance().dip2px(80));
if(view.getparent()!=null){
viewgroup parent =(viewgroup) view.getparent();
parent.removeview(view);
}
// add 导航view
contentcontainer.addview(view, layoutparams);
}
return contentview;
}

更详细的api请参考demo中的使用。

专业导航模式

专业导航的实现需要在activity.oncreate()或者fragment.oncreateview()中初始化专业导航view,把专业导航view add进入第三方app页面布局中,还需要在activity或者fragment的生命周期调用专业导航的生命周期,相关方法在baidunavimanagerfactory.getrouteguidemanager()中:

/**
* 获取百度专业导航过程view对象,将其加入应用布局内即可显示导航过程.
*
* @param activity 应用导航过程所属activity对象
* @param listener 导航过程监听器,主要是监听导航过程中消息分发,比如到达终点、导航结束和更新路名等
* @param callback 添加自定义view到导航中的callback对象
*
* @return
*/
viewoncreate(final activity activity, final onnavigationlistener listener, final naviaddviewcallback callback);
/**
* 获取百度专业导航过程view对象,将其加入应用布局内即可显示导航过程.
*
* @param activity 应用导航过程所属activity对象
* @param listener 导航过程监听器,主要是监听导航过程中消息分发,比如到达终点、导航结束和更新路名等
*
* @return
*/
viewoncreate(final activity activity, final onnavigationlistener listener);
/**
* 在 activity的onstart() 或者 fragment的onstart() 中调用
*/
voidonstart();
/**
* 在activity的onresume() 或者 fragment的onresume() 中调用
*/
voidonresume();
/**
* 在activity的onpause() 或者 fragment的onpause() 中调用
*/
voidonpause();
/**
* 在activity的onstop() 或者 fragment的onstop() 中调用
*/
voidonstop();
/**
* 在activity的ondestroy() 或者 fragment的ondestroy() 中调用
*
* @param isswitchtolightnavi 在退出专业导航后是否切换到轻导航
*/
voidondestroy(boolean isswitchtolightnavi);

调用方法以oncreate为例:

@override
protectedvoidoncreate(bundle savedinstancestate){
super.oncreate(savedinstancestate);
setcontentview(r.layout.onsdk_activity_professional);
contentcontainer =(framelayout)findviewbyid(r.id.view_container);
// 获取百度专业导航过程view对象,将其加入应用布局内即可显示导航过程.
view view =baidunavimanagerfactory.getrouteguidemanager().oncreate(this, monnavigationlistener,null);
if(view !=null){
if(view.getparent()!=null){
viewgroup parent =(viewgroup) view.getparent();
parent.removeview(view);
}
contentcontainer.addview(view);
}
}

更详细用法可参考demo中bnordernavifragment类。

横竖屏切换

为了防止在手机横竖屏切换过程中,导航出现布局混乱以及crash等情况,请在页面的onconfigurationchanged生命周期方法内调用专业导航的onconfigurationchanged接口。

@override
publicvoidonconfigurationchanged(android.content.res.configuration newconfig){
super.onconfigurationchanged(newconfig);
baidunavimanagerfactory.getrouteguidemanager().onconfigurationchanged(newconfig);
}

上一篇

驾车页

下一篇

导航相关设置

本篇文章对您是否有帮助?

网站地图