{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671508996694,"data":{"id":71713919,"title":"17.6 特色屏应用实例","slug":"ymqxp6","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"
当一个屏不需要显示全部元素时,就使用DisplayCrop进行针对性定制,从而减少cpu、内存的占用。目前Display提供默认的裁剪的类型有放大路口屏、鹰眼屏、hud屏。
DisplayCrop对象在调用createDisplay时,在IMapDisplayObserver的onDisplayCropCustom中返回。DisplayCrop可以对地图显示元素、图层显示元素、主图回调等进行配置。
放大路口:
鹰眼/异形屏:
com.autonavi.gbl.multi.model.DisplayType\u0000
取值 | 含义 |
DisplayTypeHud | hud类型 |
DisplayTypeJv | 放大路口类型 |
DisplayTypeEagleEye | 鹰眼类型 |
// 创建视图\nDisplay com.autonavi.gbl.multi.display.MultiDisplayService.createDisplay(DisplayCreateParam)\n \n// 视图裁剪\nvoid com.autonavi.gbl.multi.display.observer.IMapDisplayObserver.onDisplayCropCustom(iDisplay var1, DisplayCrop var2)\n\n// 去除所有显示元素\nvoid com.autonavi.gbl.multi.display.DisplayCrop.showMapAllContent(boolean isShow)\n\n// 是否显示精品三维\nvoid com.autonavi.gbl.multi.display.DisplayCrop.showMapRealCity(boolean isShow)\n\n// 是否开启渲染回调\nvoid com.autonavi.gbl.multi.display.DisplayCrop.setMapCallbackEnable(boolean preDrawEnable, boolean afterDrawEnable)\n\n// 是否使用内置图层能力\nvoid com.autonavi.gbl.multi.display.DisplayCrop.enableAllVirtualBuses(boolean enable)\n\n// 单独开启某个内存图层能力\nvoid com.autonavi.gbl.multi.display.DisplayCrop.enableVirtualBus(@BusBusinessType1 int type, boolean enable)\n\n// 是否开启图层碰撞\nvoid com.autonavi.gbl.multi.display.DisplayCrop.setLayerCollisionEnable(boolean enable)
只显示放大路口,该类型下视图中默认不显示其他元素,只有在出现放大路口的时候显示,其余时间空白。
// display type设置DisplayTypeJv,其余参考视图创建章节\nDisplay com.autonavi.gbl.multi.display.MultiDisplayService.createDisplay(\n\tDisplayTypeJv\n)
只显示鹰眼图,不显示主地图。可用于异形屏显示。减少主地图的内存消耗以及启动时间。
// display type设置DisplayTypeEagleEye,其余参考视图创建章节\nDisplay com.autonavi.gbl.multi.display.MultiDisplayService.createDisplay(\n\tDisplayTypeEagleEye\n)
使用dmap平台定制相关的hud样式。
// display type设置DisplayTypeHud,其余参考视图创建章节\nDisplay com.autonavi.gbl.multi.display.MultiDisplayService.createDisplay(\n\tDisplayTypeHud\n)
// 在观察者中进行DisplayCrop操作,只截取onDisplayCropCustom\nnew IDisplayObserver() {\n @Override\n public void onDisplayCropCustom(Display display, DisplayCrop displayCrop) {\n \t\t// 例如放大路口模式是关闭所有图层显示,但也可以全部开启,不过开启后性能优化则不包含了。\n displayCrop.showMapAllContent(true);\n // 可以关闭图层内聚功能 \n displayCrop.enableAllVirtualBuses(false);\n }\n}\n